자릿수 더하기
🎈 문제설명
정수 n이 매개변수로 주어질 때 n의 각 자리 숫자의 합을 return 하도록 solution 함수를 완성해 주세요
🎈 제한사항
- 0 ≤ n ≤ 1,000,000
🎈 입출력 예
n | result |
1234 | 10 |
930211 | 16 |
🎈 입출력 예 설명
입출력 예 #1
- 1 + 2 + 3 + 4 = 10을 return 합니다.
입출력 예 #2
- 9 + 3 + 0 + 2 + 1 + 1 = 16을 return 합니다.
💻 나의 풀이
정수 n을 toString() 메서드로 문자열로 변경하고 split('') 메서드로 각 자릿수를 배열에 담고 map(Number)로 문자열을 숫자로 변경해 줬다. (문자열은 더하기가 안되기 때문)
for문으로 각 배열을 순회하며 더해서 반환해 줬다.
function solution(n) {
var answer = 0;
const arr = n.toString().split('').map(Number);
for (const item of arr) {
answer += item
}
return answer;
}
💻 다른 사람 풀이
.toString().spilt('') 까지는 나의 코드와 동일한데 나는 map()을 써서 루프를 돌렸고,
이분은 reduce() 메서드를 사용했다.
function solution(n) {
return n
.toString()
.split("")
.reduce((acc, cur) => acc + Number(cur), 0);
}
코딩테스트를 하다 보면 다른 사람들의 풀이에 reduce()가 많이 나온다. reduce()를 써본 적이 없는데 한번 보고 적용해 봐야겠다.
reduce()를 사용하면 map(), filter() 등도 reduce()로 실행이 가능하다고 하고 Array의 누적 값을 출력할 때 용이하다고 하니 몇 번 쓰다 보면 익혀지지 않을까..?🫠
🌼 참고사이트
[Node.js] javascript: Array.reduce() 사용 방법 정리
Array.reduce() ● 기본 정리 배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환합니다. arr.reduce(callback[, initialValue]) callback : 배열의 각 요소에 대해 실행할 함수.
miiingo.tistory.com
Array.prototype.reduce() - JavaScript | MDN
reduce() 메서드는 배열의 각 요소에 대해 주어진 리듀서 (reducer) 함수를 실행하고, 하나의 결과값을 반환합니다.
developer.mozilla.org
'📂 JavaScript > 코딩테스트 - 프로그래머스' 카테고리의 다른 글
[프로그래머스 JS] 제곱수 판별하기 Math.sqrt(), Number.isInteger(), 나머지 연산자(%) (1) | 2024.01.31 |
---|---|
[프로그래머스 JS] 뒤에서 5등 위로 (0) | 2024.01.26 |
[프로그래머스 JS] 문자 반복 출력하기 (0) | 2024.01.26 |
[프로그래머스 JS] 세균 증식 (0) | 2024.01.25 |
[프로그래머스 JS] 옷가게 할인 받기 (0) | 2024.01.25 |