728x90
KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | Algorithm CODEKATA
➕ 자릿수 더하기
🏷 관련 주제 : 반복문 연산자
문제 설명
자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
제한사항
N의 범위 : 100,000,000 이하의 자연수입출력 예N answer 123 6 987 24
입출력 예 설명
입출력 예 #1
문제의 예시와 같습니다.
입출력 예 #2
9 + 8 + 7 = 24이므로 24를 return 하면 됩니다.
✔ Solution with While statement & Arithmetic Operator
public class Solution {
public int solution(int n) {
int answer = 0;
while (n != 0) {
answer += n % 10;
n /= 10;
}
return answer;
}
}
채점 결과

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍
📌 오늘 만난 문제 : 매개변수로 준 정수 n의 각 자리의 숫자를 더해 반환하라.
- 정수
n을10으로 나눈 나머지는n의 일의 자리 숫자이다.예: 1234 % 10 = 4 - 정수
n에10으로 나눈 몫은 정수n에서 일의 자리 숫자를 빼고 각 자리의 숫자를 바로 아래 자리(오른쪽으로 한 칸)으로 옮긴 수와 같다.예: 1234 / 10 = 123
따라서 n이 0이 아닌 동안 10으로 나머지 연산과 몫연산을 반복하면n의 각 자리 숫자를 더할 수 있다.
1. n의 각 자리 수를 더해 할당할 변수 int answer을 0으로 초기화 하자.
int answer = 0;
2. n이 0이 아닌 동안 while문으로 반복문을 돌자.
while (n != 0) {
...
}
3. 정수 n에 나머지 연산자(%)를 사용하여 n의 일의 자리 숫자를 answer에 더하자.
answer += n % 10;
4. n에 10을 나눈 값을 다시 n에 할당하여 n의 각 자리 값을 한자리씩 오른쪽으로 옮기자.
n /= 10;
5. while문이 끝나면 answer을 반환하자
return answer;
💬 무엇을 새롭게 알았는지
반복문 중 while문을 활용하여 문제를 풀어보았다.
정수의 각 자리 수를 더하는 문제를 나머지 연산자와 몫 연산자를 이용해 구할 수 있다.
728x90