NOTE/프로그래머스

N으로 표현

m-inz 2022. 3. 29. 23:54
class Solution {
    static int min = Integer.MAX_VALUE;
    static int N;
    public int solution(int a, int number) {
        N=a;
        calc(number,0,0);
        return (min==Integer.MAX_VALUE) ? -1 : min;
    }
    public void calc(int number, int val, int count){
        if(count>8) return;
        if(val==number){
            min=Math.min(min,count);
            return;
        }
        int temp = 0;
        for(int i=1; i<=8-count; i++){
            temp=temp*10+N;
            calc(number,val+temp,count+i);
            calc(number,val-temp,count+i);
            calc(number,val/temp,count+i);
            calc(number,val*temp,count+i);
        }
    }
}

DFS긴 하지만 ,,,

이것도 넘 천재적이라 느낌;;;;;;;;;;;;;;;;; 하아 다시 풀어야지,.,