아이디어
삼중 for문으로 nums배열을 더하고 에라토스테네스의 채를 사용하여 소수 판별을 했다
코드
function solution(nums) {
let count = 0;
for (let i = 0; i < nums.length - 2; i++) {
for (let j = i + 1; j < nums.length - 1; j++) {
for (let k = j + 1; k < nums.length; k++) {
let sum = nums[i] + nums[j] + nums[k];
if (isPrime(sum)) count++;
}
}
}
return count;
}
function isPrime(num) {
if (num <= 1) {
return false;
}
if (num % 2 === 0) {
return num === 2 ? true : false;
}
const sqrt = parseInt(Math.sqrt(num));
for (let i = 3; i <= sqrt; i += 2) {
if (num % i === 0) {
return false;
}
}
return true;
}
'코딩 테스트 > 프로그래머스 level1' 카테고리의 다른 글
실패율 (0) | 2022.08.11 |
---|---|
완주하지 못한 선수 (0) | 2022.08.08 |
음양 더하기 (0) | 2022.08.06 |
숫자 문자열과 영단어 (0) | 2022.04.28 |
신규 아이디 추천 (1) | 2022.04.27 |