문제 설명
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
- nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
입출력 예
nums | result |
[1, 2, 3, 4] | 1 |
[1, 2, 7, 6, 4] | 4 |
나만의 풀이
앞에 있는 문제를 2개 합친 것이랑 같아 제목과 링크를 남긴다. 우선 경우의 수를 구하고 ((삼총사) 링크) 소수인지 판별(소수 찾기 링크)을하고 카운터를 쌓으면 답이 나온다.
function solution(nums) {
let arr = [];
const len = nums.length;
let count = 0;
for(let i = 0; i < len - 2; i++) {
for(let j = i+1; j < len - 1; j++) {
for(let k = j+1; k < len; k++) {
arr.push(nums[i] + nums[j] + nums[k]);
}
}
}
const isPrime = (num) => {
const sqrt = Math.ceil(Math.sqrt(num));
for (let i = 3; i <= sqrt; i += 2) {
if(num % i === 0) return 0;
}
return 1;
}
for (let i = 0; i < arr.length; i++) {
if(arr[i] % 2 !== 0) {
count += isPrime(arr[i]);
}
}
return count;
}
'프로그래머스 JS LV1' 카테고리의 다른 글
LV1 37 실패율(2019 KAKAO BLIND RECRUITMENT) (0) | 2023.01.02 |
---|---|
LV1 36 콜라 문제 (0) | 2022.12.30 |
LV1 34 모의고사 (0) | 2022.12.29 |
LV1 33 소수 찾기 (0) | 2022.12.29 |
LV1 32 폰켓몬 (0) | 2022.12.28 |