✔ 난이도 - Bronze 2

생성자가 없는 경우에는 0을 출력해야한다는걸 명심!
for문을 0부터 돌려도 되긴 하지만 분해합은 N + N의 각자리수의 합 이기 때문에 가장 작은 생성자가 될 수 있는 수는 분해합에서 분해합의 자릿수 갯수만큼 9를 빼준 수임. 따라서 그 수부터 for문을 돌리면 더 좋음!
-> 각 자리수의 합이 가장 클 수 있을 때의 자리수 값은 9임!
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
//StringTokenizer st = new StringTokenizer(br.readLine());
int num;
int sum = 0;
int result = 0; //생성자가 없으면 0 출력
String inputData = br.readLine();
int num_length = inputData.length();
num = Integer.parseInt(inputData);
for (int i = (num - num_length*9); i < num; i++){
sum = 0;
int tmp = i;
while (tmp != 0){
sum += tmp % 10;
tmp /= 10;
}
if (i + sum == num){
result = i; //생성자가 존재할 때 result에 값 삽입
break;
}
}
sb.append(result);
br.close();
System.out.print(sb);
}
}