본문 바로가기

programmers-코딩테스트 연습/Level 1. 자바

2021-06-10 / 자릿수 더하기

문제 설명

자연수 n이 주어지면, n의 각 자릿수의 합을 구해서 리턴하는 solution 함수를 완성한다.

예를 들어 n = 123이면 1 + 2+ 3 = 6을 리턴한다.

 

제한사항

  • N의 범위 : 100,000,000 이하의 자연수

 

입출력 예

n answer
123 6
987 24

 

입출력 예 설명

입출력 예 #1

문제의 예시와 같다.

입출력 예 #2

9 + 8 + 7 = 24이므로 24를 return 하면 된다.

 

초기 코드

import java.util.*;

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

        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("Hello Java");

        return answer;
    }
}

 

정답 코드

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for(int i=0; i<11; i++){
            answer+=n%10;
            n/=10;
            if(n==0) break;
        }

        return answer;
    }
}

 

코드 설명

n의 범위는 최대 11자리이다. 즉 11번 이상 나눌 필요가 없다.

answer에는 n을 10으로 나눈 나머지 값이 들어간다. 이후 다른 자리의 수를 계산하기 위해 n을 10으로 나누어준다.

이 코드는 n의 최대 자릿수를 염두에 두고 만들었기 때문에 그보다 작은 수가 n으로 들어온다면 n은 결국 0이 되고, 의미 없는 반복이 된다. 따라서 n이 0이 된다면 반복문을 빠져나간다.

 

 

 

코딩테스트 연습 - 자릿수 더하기

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출

programmers.co.kr