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;
    }
}

 

✏ 해결방법 & 배운점

접근 방법

  1. 자연수 $n$ 이 0 보다 큰 동안 반복합니다.
  2. $n$ 을 10으로 나눈 나머지를 구하여 `answer` 에 더합니다.
  3. $n$ 을 10으로 나눈 몫을 새로운 $n$ 으로 업데이트합니다.

 

예시: n = 123

  1. 첫 번째 단계
    • 에서 10으로 나눈 나머지를 구합니다.
    • 의 나머지는 3입니다.
    • 입니다.
    • 이때, 현재까지 구한 자릿수의 합인 answer에 나머지 값을 더합니다.
    • 이 됩니다.
  2. 두 번째 단계
    • 이제 n을 10으로 나눈 몫을 구하여 을 업데이트합니다.
    • 의 몫은 12가 됩니다.
    • 가 됩니다.
    • 다시 말해, 현재 자릿수를 제외한 남은 수가 12입니다.
  3. 세 번째 단계
    • 에 대해 같은 과정을 반복합니다.
    • 의 나머지는 2입니다.
    • 에 현재 나머지 값을 더합니다.
    • 가 됩니다.
  4. 네 번째 단계
    • 의 몫은 1이 됩니다.
    • 이 됩니다.
    • 이제 마지막 남은 한 자릿수인 1에 대해 같은 과정을 반복합니다.
  5. 다섯 번째 단계
    • 의 나머지는 1입니다.
    • 에 현재 나머지 값을 더합니다.
    • 이 됩니다.
  6. 종료
    • 이제 이 0이 되었으므로 반복문이 종료됩니다.
    • 의 각 자리수를 합한 값은 6입니다.