개발 공부/알고리즘

[프로그래머스 알고리즘] "자릿수 더하기" JavaScript / .reduce(), parseInt()

U_D 2022. 3. 15. 09:46

1. 문제 설명

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

 

 

 

2. 제한 조건

N의 범위 : 100,000,000 이하의 자연수

 

 

 

 

 

3. 예시

입력/출력

 

 

4. 풀이

[reduce / parseInt]

reduce의 합산 식을 드디어 처음 활용!

배열로 바꿔준 후 배열의 각 값을 더하기

 

reduce의 initial value는 첫 acc 값. 즉, 0을 넣어서 acc 초기값을 정수화 해주는 역할("문자열 + 정수 = 문자열" 방지).

-> 0 + 1(배열의 첫번째 값이 문자열이었지만 parseInt로 정수형으로 들어온다)

function solution(n)
{
    var answer = 0;
    N = (n + "").split("")
    answer = N.reduce((acc,curr) => acc + parseInt(curr),0);
    return answer;
}

 

[for문 / parseInt]

사실 이게 더 익숙한 식이긴 하다..!

function solution(n)
{
    var a = (n + '').split('');
    var b = 0;
    for(var i = 0; i < a.length; ++i) {
        b += parseInt(a[i]);
    }
    return b;
}