본문 바로가기

코딩테스트

[프로그래머스] level1. 자릿수 더하기 (javascript)

반응형

문제

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

의식의 흐름

  1. split을 쓰면 되겠다. -> str에서만 사용 가능하다. -> n이 정수값이다 -> 변환을 어떻게 하지? -> String사용
  2. 덧셈을 어떻게 할까? -> reduce함수 사용 -> 현재값이 str값이니까 Number로 다시 정수로 변환해서 더해준다.

초기 코드

   function solution(n)
{

    const answer = String(n).split('').reduce((acc,cur)=> acc += Number(cur),0)

    return answer

}

다른이들의 정답

방법1. 문자열 처리

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

 

String()함수가 아닌 (n+"") 이렇게해도 str이 된다.

parseInt( string, n ) 이렇게쓰면 string을 n진법으로 바꿔주는 함수지만,
그냥 값을 적어서 정수로 변환할때도 사용되는듯 하다.

 

방법2. 숫자 풀이

function solution(n){
    // 숫자풀이
    var sum = 0;

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

    return sum;
}
반응형