PS/LV.1 프로그래머스 문제
[프로그래머스] LV.1 자릿수 더하기 - 자바 [4/80]
yaho!!
2024. 7. 15. 15:14
💬 문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
🚫 제한 사항
- N의 범위 : 100,000,000 이하의 자연수
📢 입출력 예
👨🏫 입출력 예 설명
📃 제출 코드
public class Solution {
public int solution(int n) {
int answer = 0;
while (n > 0) {
answer += n % 10;
n = n / 10;
}
return answer;
}
}
✏ 해결방법 & 배운점
접근 방법
- 자연수 $n$ 이 0 보다 큰 동안 반복합니다.
- $n$ 을 10으로 나눈 나머지를 구하여 `answer` 에 더합니다.
- $n$ 을 10으로 나눈 몫을 새로운 $n$ 으로 업데이트합니다.
예시: n = 123
- 첫 번째 단계
- 에서 10으로 나눈 나머지를 구합니다.
- 의 나머지는 3입니다.
- 입니다.
- 이때, 현재까지 구한 자릿수의 합인 answer에 나머지 값을 더합니다.
- 이 됩니다.
- 두 번째 단계
- 이제 n을 10으로 나눈 몫을 구하여 을 업데이트합니다.
- 의 몫은 12가 됩니다.
- 가 됩니다.
- 다시 말해, 현재 자릿수를 제외한 남은 수가 12입니다.
- 세 번째 단계
- 에 대해 같은 과정을 반복합니다.
- 의 나머지는 2입니다.
- 에 현재 나머지 값을 더합니다.
- 가 됩니다.
- 네 번째 단계
- 의 몫은 1이 됩니다.
- 이 됩니다.
- 이제 마지막 남은 한 자릿수인 1에 대해 같은 과정을 반복합니다.
- 다섯 번째 단계
- 의 나머지는 1입니다.
- 에 현재 나머지 값을 더합니다.
- 이 됩니다.
- 종료
- 이제 이 0이 되었으므로 반복문이 종료됩니다.
- 의 각 자리수를 합한 값은 6입니다.