ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [알고리즘 문제] 각 자리수의 역과 합
    IT/알고리즘 2019. 1. 8. 12:46



     이러한 유형의 문제들을 많이 풀어봐서 금방 해결할 줄 알았는데 알고공부를 잠깐 쉬어서 그런지 생각보다 쫌걸렸다 ㅠ

    문제를 보자마자 입력받은 수를 한자리 한자리 구해 배열에 값을 넣어주고 반복문을 이용해 배열의 값들을 더해주어야겠다라고 생각하고 코드를 작성해보았다.



    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    public class NumReverse {
     
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            
            Scanner scan = new Scanner(System.in);
            
            while(true) {
                
                //입력받을 숫자가 저장될 변수
                int num = scan.nextInt();
                
                if(num == 0) {
                    break;
                }else {
                    int temp = num;
                    //몇자리 숫자인가 셀 변수
                    int count = 1;
                    
                    //각 자리수 숫자의 합을 저장할 변수
                    int sum = 0;
                    
                    //몇자리 숫자인가?
                    while(temp>10) {
                        temp = temp/10;    
                        count++;
                    }
                    
                    //구한 count 크기 만큼의 배열 생성
                    int[] number = new int[count];
                    
                    
                    for(int i= 0; i<count; i++) {
                        
                        //10으로 나눈 나머지를 배열에 저장
                        number[i] = num%10;
                        //몫은 다시 num에 저장
                        num = num/10;
                        
                        //각 자리 숫자들의 합
                        sum += number[i];
                        
                        //조건 : 유효하지 않은 0은 출력하지 않는다
                        if(i==0 && number[i]==0) {
                            continue;
                        }
                        
                        //숫자 출력
                        System.out.print(number[i]);
                        
                    }
                    //합 출력
                    System.out.println(" " + sum);
                }    
            }
            
        }
     
    }
     
    cs

    조건중에 유효하지 않은 0은 출력하지 않는다라고 하는데, 숫자 첫번째 오는 0(예: 0155)이 유효하지 않은 0이라
    생각하여 0일 경우 출력되지 않게 continue를 사용해주었다.




    딱히 크게 설명할게 없는 간단한 문제였다 ㅇvㅇ

    댓글

Designed by Tistory.