๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿง  ์•Œ๊ณ ๋ฆฌ์ฆ˜

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์†Œ์ˆ˜์ฐพ๊ธฐ JS

by megan07 2023. 12. 27.

๐Ÿ’ก์ ‘๊ทผ๋ฐฉ๋ฒ•

numbers ๋ฐฐ์—ด์—์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ˆซ์ž๋“ค์„ ์ฐพ๊ธฐ
ํ•ด๋‹น ์ˆซ์ž๊ฐ€ ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„
์ค‘๋ณต๋˜๋Š” ์ˆซ์ž๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ set ์‚ฌ์šฉ

function solution(numbers) {
        
    const numArr = numbers.split('');
    let visited = new Array(numbers.length).fill(false);
    const resultSet = new Set();
    
    function isPrime(num){
        if(num<=1) return false;
        
        for(let i=2;i<num;i++){
            if(num%i===0)return false
        }
        
        return true;
    }
    
    //๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์ˆซ์ž ์ฐพ๊ธฐ
    //num = ์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•  ์ˆซ์ž
    function dfs(num){
        
     
        if(isPrime(num)){
            resultSet.add(num);
        }
        
        //numbers ๋ฐฐ์—ด์„ ๋Œ๋ฉด์„œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ˆซ์ž๋“ค ๋ฐฉ๋ฌธ
        for(let i=0;i<numbers.length;i++){
            if(!visited[i]){
                visited[i]=true;
                dfs(Number(''+num+numArr[i]));
                visited[i]=false;
            }
        }
        
    }
    
    dfs(0);
    

    return resultSet.size;
}