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=1 ; i<=10000 ; i++) d(i); StringBuilder builder = new StringBuilder(); for(int i=1 ; 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=0 ; i<String.valueOf(num).length() ; i++) newNum += String.valueOf(num).charAt(i) - '0'; if(newNum <= 10000 && arr[newNum] == 0){ arr[newNum]++; d(newNum); } } } | cs |