11, 22등의 N이 연달아서 나오는 경우도 고려하여야 한다.
class Solution {
int answer = - 1;
public int solution(int N, int number) {
dfs(0, 0, number, N);
return answer;
}
public void dfs(int cnt, int now, int number, int N) {
if(cnt > 8)
return;
if(now == number) {
if(answer == -1 || answer > cnt)
answer = cnt;
return;
}
int nn = N;
for(int i = 0; i < 8 - cnt; i++) {
dfs(cnt+i+1, now + nn, number, N);
dfs(cnt+i+1, now - nn, number, N);
dfs(cnt+i+1, now / nn, number, N);
dfs(cnt+i+1, now * nn, number, N);
nn = nn * 10 + N;
}
}
}