🧮

Sum of Digits

Sum of Digits - Explanation

쉬움 알고리즘 O(log n) O(log n)

Problem Summary

Write a function that returns the sum of all digits in a number.

Go to Problem →

Detailed Explanation

이 문제는 **문자열 변환과 reduce**를 조합하여 자릿수 합을 구하는 방법을 학습합니다. ## 핵심 개념: 자릿수 분리 숫자를 문자열로 변환하여 각 자릿수에 접근합니다. ### 접근 방법 ```javascript Math.abs(n).toString().split('').reduce((sum, d) => sum + Number(d), 0) ``` ### 단계별 분석 1. Math.abs(n): 음수 처리 2. toString(): 숫자 → 문자열 3. split(''): 각 자릿수 분리 4. reduce: 합계 계산 ### 실행 예시 ```javascript 123 → "123" → ["1", "2", "3"] → 1 + 2 + 3 = 6 ``` ### 수학적 방법 (대안) ```javascript function sumDigits(n) { n = Math.abs(n); let sum = 0; while (n > 0) { sum += n % 10; n = Math.floor(n / 10); } return sum; } ``` 문자열 방법이 더 간결하고, 수학 방법이 더 효율적입니다.

Solution Code

solution.js
function sumDigits(n) {
  return Math.abs(n).toString().split('').reduce((sum, d) => sum + Number(d), 0);
}

Key Concepts from This Problem

1. 문자열 변환
2. reduce
3. 자릿수 합
4. Math.abs

Common Mistakes

음수 처리를 위해 Math.abs를 사용해야 합니다
문자를 숫자로 변환하는 것을 잊지 마세요 (Number 또는 +)
0을 입력하면 빈 배열이 아닌 ["0"]이 됩니다

Hints

Hint 1: 숫자를 문자열로 변환한 후 각 자릿수를 더하세요.

Complexity Analysis

Time Complexity

O(log n)

Grows slowly even with larger input

Space Complexity

O(log n)

Related Tags

#알고리즘 #수학 #문자열