나의 풀이
function solution(nums) {
let len = nums.length, answer = 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++) {
if (isPrime(nums[i] + nums[j] + nums[k])) {
answer++;
}
}
}
}
return answer;
}
const isPrime = (n) => {
for (let i = 2; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
return false;
}
}
return true;
}
소수란 1과 자신만으로 나누어 떨어지는 1보다 큰 양의 정수를 뜻한다.
소수 구하는 식은 여러가지가 있는데 따로 정리를 해놔야겠다.
주어진 숫자 중 3개의 수를 더해서 모든 경우의 수를 구하는 식이다.
각각의 수를 3개의 for문으로 표현해준 뒤 따로 만들어둔 isPrime 함수로 소수를 판별해서 정답을 구한다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 모의고사 (0) | 2022.07.29 |
---|---|
[프로그래머스] 폰켓몬 (0) | 2022.07.28 |
[프로그래머스] 오픈채팅방 (0) | 2022.07.28 |
[프로그래머스] 문자열 압축 (0) | 2022.07.27 |
[프로그래머스] 숫자 문자열과 영단어 (0) | 2022.07.21 |