백준 - 4673번: Self Number (Silver V)
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//체크용 boolean 배열
boolean[] list = new boolean[10001];
//1부터 10000까지 d() 함수로 보내고 체크하기
for (int i = 1; i <= 10000; i++) {
int num = d(i); //d함수 리턴값 : 정수
//만약 리턴값이 10000보다 작고, 만들어진 적 없는 숫자라면 true로 체크하기
if (num <= 10000 && !list[num]) list[num] = true;
}
//1부터 10000까지 방문 기록이 없는 숫자는 출력하기
for (int i = 1; i < list.length; i++) {
if (!list[i]) bw.write(i + "\n");
}
bw.flush();
bw.close();
}
public static int d(int num) {
int result = num;
while (num > 0) {
result += (num % 10);
num /= 10;
}
return result;
}
}