Posts 프로그래머스 Level 1 - 자릿수 더하기 (JavaScript)
Post
Cancel

프로그래머스 Level 1 - 자릿수 더하기 (JavaScript)

프로그래머스 - Level1 자릿수 더하기

문제 설명

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

제한사항

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

🙋‍♂️나의 풀이

요구사항 파악

  • 정수 n을 10으로 나눈 나머지는 맨 마지막 자리 수이다.
  • n을 10으로 나누고 반내림을 하고, 다시 10으로 나눈 나머지를 더한다.
1
2
3
4
5
6
7
8
9
function solution(n) {
  let sum = 0;
  while (n > 0) {
    const digit = n % 10;
    n = Math.floor(n / 10);
    sum += digit;
  }
  return sum;
}

자연수 뒤집어 배열로 만들기 문제와 접근 방법은 같다.

👀참고한 풀이

1
2
3
4
5
6
function solution(n) {
  return n
    .toString()
    .split("")
    .reduce((acc, cur) => (acc += +cur), 0);
}
  • 숫자를 문자열로 변환하고, 다시 배열로 변환해서 모든 요소를 더하는 방법이다.
  • 처음에 이 방법도 떠올렸는데, 제한 조건에서 N의 범위가 100,000,000이하의 자연수라서 배열의 범위가 벗어날 것 같았다. 검색해보니 배열의 길이는 최대 $2^{32} - 1$ (4,294,967,295) 까지 가질 수 있다고 한다.

참고 : Array.length

This post is licensed under CC BY 4.0 by the author.

HackerRank - Jumping on the Clouds (JavaScript)

프로그래머스 Level 1 - 최대공약수와 최소공배수 (JavaScript)