기본적인 순열과 소수 찾기 알고리즘을 물어보는 문제
function solution(numbers) {
let answer = 0;
let arr1 = numbers.split("");
let set = new Set();
console.log(arr1)
const perm = (arr, count) => {
let result = [];
if(count === 1){
return arr.map((v)=>[v])
}
arr.forEach((val, index, arr1)=>{
const now = val;
const restArr = arr.filter((_, index1)=>{
return index !== index1
});
const permArr = perm(restArr, count-1);
const combineArr = permArr.map((v)=>[val, ...v]);
result.push(...combineArr);
});
return result;
}
for(let i = 1 ; i <= arr1.length ; i++){
let arr2 = perm(arr1,i).map((e)=> e.join(""));
arr2.forEach((val)=>{
let val1 = parseInt(val);
if(val1 > 1){
let is = true;
for(let j = 2 ; j <= Math.sqrt(val1); j++){
if(val1 % j === 0){
is = false;
}
}
if(is){
set.add(val1);
}
}
});
}
//console.log(...set)
return set.size;
}
순열의 결과로 나오는 것을 중복을 제거하기 위해 JS의 set을 활용
set에는 length 대신, size라는 접근자를 사용해서 크기를 가져와야 함
set.size // 이렇게 가져와야 함