일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 조건문
- probs
- async/await
- Promise Chaining
- 문자열을 객체로 만드는법
- 상속 (inheritance)
- 화살표함수 기본 개념
- 재귀함수 탬플릿
- Promise all
- 추상화 (abstraction)
- 클래스 문법 구조
- 캡슐화 (encapsulation)
- props비구조화 할당
- 재귀적으로 생각하기
- Instanc
- 객체지향 프로그래밍 특징
- align-content
- 참조자료형
- align-iitems
- justfiy-content
- string
- css 정리
- probs.children
- 다형성 (polymorphism)
- Math.floor()
- flex-direction
- display
- class
- 첫번째 미니 프로잭트
- 얕은복사와 깊은 복사
Archives
- Today
- Total
희락코딩
알고리즘 - 각 자릿수를 더한 값 리턴하기 본문
728x90
반응형
문제
수를 입력받아 각 자릿수를 모두 더한 값을 리턴해야 합니다.
※ 음수를 입력 받은 경우, 첫번째 수는 음수로 계산하기
입출력 예시
1
2
3
4
5
|
let output = addDigts(3481);
console.log(output); // --> 16 = 3 + 4 + 8 + 1
output = addDigts(-248);
console.log(output); // --> 10 = -2 + 4 + 8
|
cs |
수도코드 및 코드작성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
function addDigits(num) {
let arrNum = num.toString().split('') // 숫자를 스트링으로 바꾸고 배열에 넣는 작업
let minusArrnum = arrNum.slice(2) // 음수를 받을경우 그이외의 수
if(arrNum[0]==='-'){
let minusSum = minusArrnum.reduce((acc,cur) => Number(acc)+Number(cur),0);
return minusSum - Number(arrNum[1])
}
// 첫번째 자리수가 음수일 경우 자릿수 덧셈 작업
const plusNum = arrNum.reduce((acc, cur)=> Number(acc)+Number(cur),0)
return plusNum
}
// 양수일 경우 덧셈 작업
|
cs |
문제 풀이
첫번재 자릿수가 양수일 경우
우선 reduce메서드를 활용해서 효율적으로 덧셈 작업을 하기 위해 입력받은 숫자를 문자열로 바꿔주고 그문자열을 배열 형태로 만들어 줍니다.
reduce함수를 통해 배열안에 있는 자릿수를 모두 더해줍니다.
첫번째 자릿수가 음수일 경우
위와 같은 맥락으로 숫자를 문자열로 바꿔주고 그문자열을 배열 형태로 만들어 줍니다.
여기서 배열의 0번째 인덱스가 '-'일때 조건을 만든후 1첫번째 익덱스를 나머지 배열의 값을 빼주는 실행문을 작성하면 끝!!!
728x90
반응형
'프로그래밍 > 코드 문제 풀이' 카테고리의 다른 글
알고리즘 - 각 단어의 개수 정보를 담은 객체 (2) | 2021.05.05 |
---|---|
알고리즘 - 최후의 한자리 수를 리턴하기. (0) | 2021.05.05 |
mostFrequentCharacter (0) | 2021.04.25 |
countAllCharacters // 문자열을 객체로! (0) | 2021.04.25 |
addToBackOfNew & addToFrontOfNew (0) | 2021.04.25 |
Comments