자릿수 더하기

문제

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

제한조건

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

풀이방향

  • 숫자를 쪼개서 더하기

문제풀이

sumDigit.js
1
2
3
4
5
6
7
8
9
10
function sumDigit(num) {
var sum = 0;
while (num > 0) {
sum += num % 10;
num = Math.floor(num / 10);
}
return sum;
}

export { sumDigit };
sumDigit.test.js
1
2
3
4
5
6
7
8
9
10
11
import { sumDigit } from "../src/sumDigit";

describe("sumDigit", () => {
it("should return 6 as the sum of 123", () => {
expect(sumDigit(123)).toBe(6);
});

it("should return 24 as the sum of 987", () => {
expect(sumDigit(987)).toBe(24);
});
});

문제출처

  • 프로그래머스

다른 풀이

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