문제 출처: https://www.acmicpc.net/problem/4673




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
public class Main {
    
    private static int[] arr = new int[10001];
    
    public static void main(String[] args) throws Exception {
        for(int i=; i<=10000 ; i++)
            d(i);
        
        StringBuilder builder = new StringBuilder();
        for(int i=; i<=10000 ; i++)
            if(arr[i] == 0)
                builder.append(i).append("\n");
        
        System.out.println(builder);
    }
    
    public static void d(int num){
        int newNum = num;
        
           // 숫자 CHAR(0~9)는 ASCII 코드 '0'(48)부터 시작하므로, '0'(48)을 빼주면 숫자를 얻을 수 있다.
        for(int i=; i<String.valueOf(num).length() ; i++)
            newNum += String.valueOf(num).charAt(i) - '0'
        
        if(newNum <= 10000 && arr[newNum] == 0){
            arr[newNum]++;
            d(newNum);
        }
    }
}
cs


'Algorithm' 카테고리의 다른 글

백준 2448번: 별찍기-11  (0) 2018.10.04
백준 1065번: 한수  (0) 2018.10.04
백준 2839번: 설탕 배달  (0) 2018.09.30
백준 1019번: 책 페이지  (0) 2018.09.27
백준 1339번: 단어 수학  (0) 2018.09.23

+ Recent posts