728x90
🔗 문제 링크
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌 문제 개요
자연수 N이 주어졌을 때 각 자릿수의 합을 구하는 문제이다.
예를 들어 123이라면 이므로 6을 반환해야 한다.
1 + 2 + 3 = 6
또한 987이라면 24 를 반환한다.
9 + 8 + 7 = 24
📌 접근 방법
숫자의 각 자릿수를 하나씩 꺼내어 더하면 된다.
마지막 자릿수는 % 10 연산으로 구할 수 있다.
n % 10
구한 자릿수를 answer에 누적한다.
그리고 / 10 연산을 이용해 마지막 자릿수를 제거한다.
answer += n % 10;
n /= 10;
숫자가 0이 될 때까지 반복하면 모든 자릿수를 더할 수 있다.
📌 핵심 아이디어
1. % 10으로 마지막 자릿수 구하기
어떤 수를 10으로 나눈 나머지는 항상 마지막 자릿수이다.
987 % 10 = 7
123 % 10 = 3
코드에서는 다음과 같이 사용한다.
answer += n % 10;
2. / 10으로 마지막 자릿수 제거하기
정수 나눗셈은 소수점을 버리기 때문에 마지막 자릿수가 제거된다.
987 / 10 = 98
98 / 10 = 9
9 / 10 = 0
n /= 10;
3. 모든 자릿수를 순회하며 합계 누적
예를 들어 987이라면 다음과 같이 진행된다.
987 → 7 추출 → answer = 7
98 → 8 추출 → answer = 15
9 → 9 추출 → answer = 24
0 → 종료
따라서 최종 결과는 24가 된다.
📌 전체 코드
class Solution {
public int solution(int n) {
int answer = 0;
while (n > 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
}
📄 정리
- % 10을 사용하면 마지막 자릿수를 구할 수 있다.
- / 10을 사용하면 마지막 자릿수를 제거할 수 있다.
- 숫자가 0이 될 때까지 반복하며 자릿수를 모두 더한다.
- 문자열 변환 없이 숫자 연산만으로 해결할 수 있는 문제이다.
- 자릿수 관련 문제에서 자주 사용되는 기본 패턴을 익힐 수 있다.
728x90
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
| 프로그래머스 기사단원의 무기 JAVA 풀이 (약수, 구현) (0) | 2026.06.15 |
|---|---|
| 프로그래머스 지폐 접기 JAVA 풀이 (구현, 반복문) (0) | 2026.06.13 |
| 프로그래머스 PCCP 기출문제 - 저수지 물 사용량 예측(Java) (0) | 2026.06.11 |
| 프로그래머스 옹알이 JAVA 풀이(문자열, 구현) (0) | 2026.06.10 |
| 프로그래머스 시험장 나누기 JAVA 풀이 (이분 탐색, DFS, 트리) (0) | 2026.06.10 |