Problem
Solve(내 풀이)
소수인지 판별하는 함수
소수(prime number)의 정의: 소수는 자기 자신과 1 이외에 다른 어떤 수로도 나뉘어 지지 않은 수이다. 소수를 검증하기 위해서는 아래 로직이 필요하다. 또한 소수는 2를 제외하고 모두 홀수라는 규칙이 있다.
const isPrime = num => {
if (num === 1) return false;
if (num === 2) return true;
if (num % 2 === 0) return false; //2를 제외한 소수는 항상 홀수
// 소수는 홀수 이므로 짝수로 나누는 과정은 생략한다
for (let i = 3; i < num; i+=2) {
if (num % i === 0) { // 나누어지므로 소수가 아니다.
return false;
}
}
return true;
};
주어진 배열안에서 3개를 뽑는 모든 경우(조합)
반복문을 3개 중첩하면 3개를 뽑는 모든 경우를 구할 수 있다.
const solution = nums => {
let result = 0;
const { length } = nums;
for (let i = 0; i < length - 2; i++) {
for (let j = i + 1; j < length - 1; j++) {
for (let k = j + 1; k < length; k++) {
const sum = nums[i] + nums[j] + nums[k];
if (isPrime(sum)) {
result++;
}
console.log(`${nums[i]} + ${nums[j]} + ${nums[k]}`);
console.log(nums[i] + nums[j] + nums[k], isPrime(sum));
}
}
}
return result;
};