Algorithm

백준 4673번: 셀프 넘버

qlyh8 2018. 10. 4. 01:03

문제 출처: 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