띵유로그

[프로그래머스][DP] N으로 표현 본문

알고리즘

[프로그래머스][DP] N으로 표현

띵유 2020. 12. 15. 11:51
반응형
import java.util.*;
class Solution {
    public int solution(int N, int number) {
        int answer = 0;
        HashSet<Integer>[] set = new HashSet[8];
        
        int num=0;
        for (int i = 0 ;i < 8;i++){
            num=1+10*num;
            set[i]=new HashSet<Integer>();
            set[i].add(num*N);
        }
        for(int to=1;to<8;to++){
            for (int from =0;from <to ;from++){
                for (int i : set[from]){
                    for(int j :set[to-from-1]){
                        set[to].add(i+j);
                        set[to].add(i-j);
                        set[to].add(i*j);
                        if (j!=0){
                            set[to].add(i/j);
                        }
                    }
                }
            }
            
        }
        for(int i =0;i<8;i++){
            print(set[i]);
            if(set[i].contains(number)){
                return i+1;
            }
        }
        
        return -1;
}
}

Hashset을 만든 후

N, NN, NNN, ..., NNNNNNNN 을 add한다. 

이후 각 자리를 조합해서 만들 수 있는 숫자를 add한다.

반응형
Comments