[프로그래머스] 소수 찾기 (javascript)

728x90
반응형

[new solution, set사용] combination과 set으로 다시 풀어봤다.

function isPrime(s){
    if(s<2)return false;
    for(let i=2;i<=Math.sqrt(s);i++){
        if(s%i==0)return false;
    }
    return true;
}

function solution(numbers) {
    var answer = 0;
    
    const set=new Set();
    
    function dfs(count,str,flag,numbers){
        if(str.length>=1 && str.length<=numbers.length){
            if(isPrime(+str)){
               set.add(+str); 
            }
        }
            
        if(count===numbers.length){
            return;
        }
        for(let i=0;i<numbers.length;i+=1){
            if((flag&(1<<i))!==0)continue;
            // console.log(str,i,(flag&(1<<i)))
            dfs(count+1,str+numbers[i],flag|(1<<i),numbers);
        }
    }
    dfs(0,"",0,numbers);
    return set.size;
}

 

 

728x90
반응형
TAGS.

Comments