이 문제는 숫자를 분해하여 조합해야하는 완전 탐색 문제이다.
package brute_force;
import java.util.*;
public class digit_generator {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int N = in.nextInt();
int answer = 0;
for(int i = 0; i<N; i++) {
int number = i;
int sum = 0;
while(number != 0) {
sum += number %10;
number = number/10;
}
if((sum + i) == N) {
answer = i;
break;
}
}
System.out.println(answer);
}
}
- 다들 브루트 포스 문제는 그렇게 어렵지 않게 풀 수 있을 것이다. 완전 탐색 알고리즘만 구현하고 만족하는 값을 찾을 때 까지 돌리면 되기 때문이다. 하지만 같은 같은 브루트 포스 알고리즘이라고 불가능한 범위를 제외시키면 성능을 향상 시킬 수 있으니 그 부분을 고려해보는 과정이 중요할 것 같다.