[프로그래머스 JS] 자릿수 더하기 (toString(),split(),map())

반응형

자릿수 더하기

🎈 문제설명

정수 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

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유