Input: num = 38
Output: 2
Explanation: The process is
38 --> 3 + 8 --> 11
11 --> 1 + 1 --> 2
Since 2 has only one digit, return it.
Input: num = 0
Output: 0
1.num을 digit단위로 잘라서 digit의 합을 구한다.
2. digit의 합이 두자리수 이상이면 위의 과정을 반복한다.
3. digit의 합이 한자리수가 되는 순간의 digit의 합을 리턴한다.
/**
* @param {number} num
* @return {number}
*/
const addDigits = function (num) {
let result = 0;
let sum = 0;
let nums = String(num).split("");
while (true) {
// nums의 digit 총합을 구한다.
for (let i = 0; i < nums.length; i++) {
sum += parseInt(nums[i]);
}
// digit의 총합을 새로운 num으로 정한다.
nums = String(sum).split("");
// 만약 num의 digit이 1이면 sum을 result에 할당한다.
if (nums.length === 1) {
result = sum;
break;
} else {
// num의 digit이 1보다 크면 sum을 0으로 초기화
sum = 0;
}
}
return result;
};