새소식

알고리즘 문제풀이/프로그래머스

[수학] level1 프로그래머스 자릿수 더하기 자바, 파이썬 풀이

  • -

프로그래머스 연습문제 자릿수 더하기 자바, 파이썬 풀이

문제 정리

  1. 자연수 N이 주어지면 각 자릿수의 합을 구해서 return 하는 solution 함수를 작성해라


문제 풀이

  1. 10으로 계속 나눠가며 나머지를 더해준다.
  2. 주어진 수 n은 10을 나눈 몫으로 update해준다.
  3. n이 10보다 작아질때 까지 반복한다
  4. while문이 탈출하면 10보다 작아진 n을 ans에 마지막으로 더해준다.
    예를 들어 123이 있다.
    123을 10으로 나눈 나머지는 3이다    // 합 3
    123을 10으로 나눈 몫은 12이다.  // n=12
    

12를 10으로 나눈 나머지는 2이다 // 합 3+2 = 5
12를 10으로 나눈 몫은 1이다. // n=1

n이 10보다 작아졌으므로 탈출
마지막 n을 더해 준다 // 5+1 = 6

<br><br>

# <span style="color: blue; font-size:15pt">자릿수 더하기 파이썬 코드</span>
파이썬의 경우 나누어줄때 int형으로 형 변환이 되지 않으므로 명시적 형변환을 해주어야 한다.  
아니면 몫을 구할때 소수점이 들어가게 된다.
```python
def solution(n):
    ans = 0
    while n >= 10:
        ans += n % 10
        n = int(n / 10)
    ans += n
    return ans



자릿수 더하기 자바 코드

class Solution {
    public static void main(String[] args){
        int n = 123;
        int n2 = 987;

        System.out.println(solution(n));
        System.out.println(solution(n2));
    }

    public static int solution(int n) {
        int ans = 0;

        while(n >= 10){
            list.add(n % 10);
            n /= 10;
        }
        ans += n;
        return ans;
    }
}
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.