본문 바로가기
Language/Java

[Programmers | Java | 연습 문제 풀이] 자릿수 더하기 - Solution with Loop & Arithmetic Operator

by ㅇ달빛천사ㅇ 2024. 6. 8.
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의 각 자리의 숫자를 더해 반환하라.

  • 정수 n10으로 나눈 나머지는 n의 일의 자리 숫자이다.예: 1234 % 10 = 4
  • 정수 n10으로 나눈 몫은 정수 n에서 일의 자리 숫자를 빼고 각 자리의 숫자를 바로 아래 자리(오른쪽으로 한 칸)으로 옮긴 수와 같다.예: 1234 / 10 = 123

따라서 n0이 아닌 동안 10으로 나머지 연산과 몫연산을 반복하면
n의 각 자리 숫자를 더할 수 있다.


1. n의 각 자리 수를 더해 할당할 변수 int answer0으로 초기화 하자.

int answer = 0;

2. n0이 아닌 동안 while문으로 반복문을 돌자.

while (n != 0) {
    ...
}

3. 정수 n에 나머지 연산자(%)를 사용하여 n의 일의 자리 숫자를 answer에 더하자.

answer += n % 10;

4. n10을 나눈 값을 다시 n에 할당하여 n의 각 자리 값을 한자리씩 오른쪽으로 옮기자.

n /= 10;

5. while문이 끝나면 answer을 반환하자

return answer;

💬 무엇을 새롭게 알았는지

반복문 중 while문을 활용하여 문제를 풀어보았다.
정수의 각 자리 수를 더하는 문제를 나머지 연산자와 몫 연산자를 이용해 구할 수 있다.

728x90


Top