본문 바로가기
프로그래머스 문제풀어보기

[Lv.0] 자릿수 더하기

by dantriss 2022. 10. 8.

https://school.programmers.co.kr/learn/courses/30/lessons/12931

 

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.

제한사항

  • N의 범위 : 100,000,000 이하의 자연수
import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;

        while(n!=0) {
            answer += n%10;
            n /= 10;
            
        }

        return answer;
    }
}

자연수N이 123이라면 1+2+3, 4567이라면 4+5+6+7을 해야하며 

반복문을 이용해야한다

반복문 while을 이용해 변수 answer에 n을 10으로 나눈 나머지값을 저장한다 (answer += n%10;)

만약 자연수n이 123이라면 첫번째에서 1의자리인 3이 나오게 된다 그 후 예시로 든 가상의 숫자 123을 10으로 나누면 

12.3이나오게 되지만 소수점은 저장하지 않는 int타입이기때문에 12만 n에 저장이 된다(n /= 10;)

다시 반복문이 작동되어 12를 10으로 나눈 나머지값인 1의 자리인 2가 후위연산자에 의해 저장되어있던 값 3과 더해진다(answer += n%10;)

그 후 12를 10으로 나눠 1.2가 되었지만 위와같은 이유로 n에는 1만 저장되게 된다.

결국 처음 자연수n의 모든 자리수가 변수 answer에 저장되게 되고 조건식(n!=0)에 의해  자연수 n이 0이 아닐때까지 반복되던 반복문 while이 자연수가 0이 되면 더이상 진행되지 않기 때문에 자연수 n의 모든 자리수가 더해진 값 answer가 반환이 된다

 

 

 

'프로그래머스 문제풀어보기' 카테고리의 다른 글

[Lv.0] 자연수 뒤집어 배열로 만들기  (0) 2022.10.11
[Lv.0] 정수 제곱근 판별  (0) 2022.10.10
[Lv.0] 약수의 합  (0) 2022.10.06
[Lv.0] 평균 구하기  (0) 2022.10.06
[Lv.0] 짝수와 홀수  (0) 2022.10.06

댓글