문제
문제 링크 - https://school.programmers.co.kr/learn/courses/30/lessons/120906
풀이 1
자릿수를 문자열로 생각하는 방법
function solution(n) {
return n.toString().split('').reduce((acc, curr) => acc + Number(curr), 0);
}
풀이 2
수학적으로 자릿수에 해당하는 숫자 구하는 방법
function solution(n) {
let sum = 0;
let num = n;
while(num > 0) { // ---3)
sum += num % 10; // --- 1)
num = Math.floor(num / 10); // --- 2)
}
return sum;
}
1) 10으로 나눈 나머지를 구해 일의 자리의 숫자를 가져옴
2) 10으로 나눈 다음 소숫점 이하를 버려서 숫자를 오른쪽으로 한칸씩 밀음. ex) 1234 -> 123.4 -> 123
3) 1), 2)의 과정을 반복하다가 최후에는 오른쪽으로 미는 과정에 의해 0밖에 안남아서 종료
'알고리즘 이론 & 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv.0 | 구슬을 나누는 경우의 수 (0) | 2023.07.07 |
---|---|
프로그래머스 Lv.0 - 직각삼각형 출력하기 +) nodejs readline (0) | 2023.07.06 |
프로그래머스 Lv.0 | 최빈값 구하기 (0) | 2023.07.05 |
프로그래머스 Lv.0 | 분수의 덧셈 (0) | 2023.07.02 |
프로그래머스 Lv.0 | 캐릭터의 좌표 (0) | 2023.06.29 |