const isPrime=(theNumber)=>{
let middle=Math.floor(Math.sqrt(theNumber));
let count=0;
// 제곱수는 주의하기, 1 주의하기
for ( let i=1; i<=middle;i++ ){
if (theNumber%i===0){
if (theNumber/i===i){
count+=1;
}else{
count+=2;
}
}
}
if (count===2){
return true;
}else if (theNumber===1){
return false;
}else{
return false
}
}
function solution(numbers) {
const getPermutations = (array) => {
const results = new Set(); // 중복된 소수를 방지하기 위해 Set 사용
const permute = (arr, current) => {
if (current.length > 0) {
const num = parseInt(current.join(''));
if (isPrime(num)) {
results.add(num);
}
}
if (arr.length === 0) return;
for (let i = 0; i < arr.length; i++) {
const newArr = arr.slice(0, i).concat(arr.slice(i + 1));
permute(newArr, current.concat(arr[i]));
}
};
permute(array, []);
return results;
};
const numbersArray = numbers.split('');
const permutations = getPermutations(numbersArray);
return permutations.size;
}
순열, 조합 조금 더 공부해야겠다.