완전탐색 소수찾기 자바스크립트
function solution(numbers) {
let answer = 0;
let arr = numbers.split('')
let set = new Set();
numOfCase(arr,'')
function numOfCase(arr,str) {
if(arr.length) {
for(let i = 0; i < arr.length; i++) {
let copyArr = [...arr];
copyArr.splice(i,1);
numOfCase(copyArr ,str + arr[i])
}
}
if(str > 0) set.add(+str);
}
outer: for(let e of set) {
if(e == 1) continue
for(let i = 2; i <= Math.sqrt(e); i++) {
if(!(e % i)) continue outer;
}
answer++;
}
return answer;
}
모든 가능한 경우의 수를 찾는 재귀함수가 이해가 안돼서 괴로웠던 문제..
이해를 하고 나니 이 재귀를 만들어낸 사람이 엄청 대단하게 느껴졌다.
경우의 수를 다 찾고 겹치는 수를 없애기 위해 set에 저장하고,
다시 배열로 만들어 각 요소에 대해 소수를 체크해주면 해결된다.
Author And Source
이 문제에 관하여(완전탐색 소수찾기 자바스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@gytlr01/완전탐색-소수찾기-자바스크립트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)