PS/프로그래머스
[Level2][Javascript] 소수 찾기
returnzero
2022. 6. 24. 13:20
function solution(numbers) {
var answer = 0;
let obj={};
let arr= numbers.split("").map(e=>Number(e));
// console.log(arr);
for (let i =1; i<=arr.length;i++){
let permu_arr=permutation(arr,i);
// console.log(permu_arr);
for (let value of permu_arr){
// console.log(value);
let a= Number(value.join(''));
if(isPrime(a)>0){
// console.log(a)
obj[a]= (obj[a]||0)+1;
}
}
}
answer= Object.keys(obj).length;
return answer;
}
function isPrime(n){
if (n<=1) return -1;
for (let i=2; i<n;i++){
if(n%i===0) return -1;
}
return n;
}
function permutation(arr, num){
const res = [];
if(num === 1) return arr.map((v) => [v]);
arr.forEach((v, idx, arr) => {
const rest = [...arr.slice(0,idx), ...arr.slice(idx+1)];
const permutations = permutation(rest, num-1);
const attach = permutations.map((permutation) => [v, ...permutation]);
res.push(...attach);
})
return res;
}
순열 코드는 암기하는게 좋겠다.