찰리의 이야기

Javascript 자릿수 더하기 본문

찰리: 코딩 연습

Javascript 자릿수 더하기

쨜리 2021. 9. 14. 11:09
반응형

Javascript 자릿수 더하기

 

 

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

제한사항

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

 

입출력 예

N / answer

123 6
987 24

 

주어진 코드

function solution(n)
{
    var answer = 0;

    // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
    console.log('Hello Javascript')

    return answer;
}

자연수를 받아서 각 자리수를 더하는 방법은 

일단 각 자리수를 개별적으로 처리해야하는데

이 방법에 있어서 숫자 방법과 문자 방법이 있습니다. 

우선은 문자 방법으로 풀어보도록 하겠습니다.

 

function solution(n){
    let arr = n.toString().split("").map(x => parseInt(x));
    return arr.reduce((acc, cur) => acc + cur ,0);
}

먼저 자연수를 문자열과 배열로 만든 다음,

내부의 요소값은 map()를 이용해서 10진수로 변경해서 arr에 저장했습니다.

해당 배열의 각 요소를 누적해서 더하는 방식이 필요하기 때문에

reduce()를 통해서 처리해봤습니다.

 

여기까지가 제 풀이 방법이고

다른 풀이법도 살펴보았습니다.

function solution(n){

    var sum = 0;

    do {
        sum += n%10;
        n = Math.floor(n/10);
    } while(n > 0);

    return sum;
}

 

숫자 풀이방법입니다.

n의 각 자리수를 10으로 나눈 나머지를 sum 변수에 더해주는 방식입니다.

while문이 반복될 때마다 10자리씩 줄여가면서 반복합니다.

매우 깔끔합니다. 

이 방식이 문자방식보다 오히려 빠를 것 같습니다. 

 

 

 

 

Javascript 자릿수 더하기

반응형
Comments