개키우는개발자 : )

[알고리즘 자바] 자릿수의 합 본문

Algorithm Programming/Java

[알고리즘 자바] 자릿수의 합

DOGvelopers 2020. 1. 9. 12:39
반응형

광고 클릭은 개발자(저) 에게 큰 힘이 됩니다!!'ㅁ'

 

| 문제

N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력 하는 프로그램을 작성하세요. 각 자연수의 자릿수의 합을 구하는 함수를 int digit_sum(int x)를 꼭 작성해서 프로그래밍 하세요.

 

| 입력설명

자연수의 개수 N(3<=N<=100)이 주어지고, 그 다음 줄에 N개의 자연수가 주어진다. 각 자연수의 크기는 10,000,000를 넘지 않는다.

 

| 출력설명

자릿수의 합이 최대인 자연수를 출력한다.

 

| 입력 예제

3

125 15232 97

 

| 출력 예제

97

 

| 풀이

 

digit_sum(125)

x = 125 , tmp = 5 = 125 % 10 , sum = 0+5 , x = 12 = 125/10

x = 12 , tmp = 2 = 12 % 10 , sum = 5+2 , x = 1 = 12/10

x = 1 , tmp = 1 = 1 % 10, sum = 7+1 , x = 0 = 1/10

한 자리씩 더해줌

8 > -2147... 

max = 8;

res = 125

 

13 > 8

max = 13;

res = 15232

 

16 > 13

max = 16;

res = 97

public class Test10 {

    static int digit_sum(int x){
        int sum = 0, tmp;
        while(x>0){
            tmp=x%10;
            sum=sum+tmp;
            x=x/10;
        }
        return sum;
    }

    public static void main(String[] args) {
        int n, i, sum = 0, max=-2147000000, res = 0;
        int[] num = {125,15232,97};
        n = 3;
        for(i=0;i < n; i++){
            sum=digit_sum(num[i]);
            if(sum > max){
                max=sum;
                res=num[i];
            }
        }
        System.out.printf("%d\n",res);
    }
}
반응형
Comments