https://school.programmers.co.kr/learn/courses/30/lessons/42839
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1) 풀이
소수 찾는 알고리즘 + dfs로 순열 풀듯이 푸는 방식을 사용했다
소수 찾는 알고리즘은 이전에 풀어본 적이 있었고 순열 풀이도 예전 휴학때 해본 적 있으나 잊고 살다가
코테 준비한다고 급하게 풀어보는 중..
나중에 참고하려고 참고했던 자료를 첨부한다
자료 보면 풀이 이해가기 때문에 따로 적지는 않음!
2) 최종 소스코드
function solution(numbers) {
let answer = 0;
const done = [];
const arr = [...numbers];
const select = Array.from({ length: arr.length }, () => false);
function prime(k) {
if (done.includes(k) || k === 0 || k === 1) return;
for (let i = 2; i * i <= k; i++) {
if (k % i === 0) return;
}
answer++;
done.push(k);
}
function dfs(count, n) {
prime(Number(n));
if (count >= arr.length) return;
for (let i = 0; i < arr.length; i++) {
if (select[i]) continue;
select[i] = true;
dfs(count + 1, n + arr[i]);
select[i] = false;
}
}
dfs(0, "");
return answer;
}
3) 참고자료
https://rimkongs.tistory.com/115
[개념] 조합, 순열 + DFS,BFS
[순열, 조합] 순열이라는 것은 주어진 수열에서 순서에 따라 결과가 달라지는 방식을 순열이라고 한다. 말 그대로, 순서가 존재하는 열 이라는 것이다. 즉 순열에서 { 1, 2, 3 } 과 { 1, 3, 2 } , { 2, 1, 3
rimkongs.tistory.com
https://myjamong.tistory.com/139
소수(Prime Number) 구하기 효율적 알고리즘 :: 코드자몽
소수(Prime Number) 소수는 자신보다 작은 두개의 자연수를 곱하여 만들 수 없는 1보다 큰 자연수이다. ex) 5는 5*1 또는 1*5로 수를 곱합 결과를 적는 유일한 방법이 그 수 자신을 포함하기 때문에 5는
myjamong.tistory.com
728x90
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JavaScript] 아이템 줍기 (2) | 2023.04.20 |
---|---|
[프로그래머스/JavaScript] 최고의 집합 (0) | 2023.04.06 |
[프로그래머스/JavaScript] 최소직사각형 (0) | 2022.12.14 |
[프로그래머스/JavaScript] 베스트앨범 (0) | 2022.12.14 |
[프로그래머스/JavaScript] 타겟 넘버 (1) | 2022.12.14 |