🧮
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
#알고리즘 #수학 #문자열