728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/12977
코드
function solution(nums) {
let answer = 0;
const len = nums.length;
for (let i=0; i<len; i++) { //배열 안에서 서로다른 3개의 수를 더하기
for (let j=i+1; j<len; j++) {
for (let k=j+1; k<len; k++) {
let sum = nums[i] + nums[j] + nums[k];
if (isPrime(sum)) { //소수라면 정답 count++
answer++;
}
}
}
}
function isPrime(sum) {
if (sum < 2) return true;
for (let i=2; i<sum; i++) { //1외에 숫자 하나라도 나누어떨어지면 소수탈락
if (sum % i == 0) return false;
}
return true;
}
return answer;
}
후기
- 배열에서 서로 다른 3개의 수를 뽑기 위해서는 3중 for문을 써야 한다는 것을 깨달음
- n중 for문이 되어버리면 이게 맞나 하고 의심부터 하게 되는데 다행히 다른 분들의 코드에서도 3중 for문이 많아서 안심했다
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers] 숫자 문자열과 영단어 / JavaScript (0) | 2022.01.05 |
---|---|
[Programmers] 크레인 인형뽑기 게임 / JavaScript (0) | 2022.01.05 |
[Programmers] 내적 / JavaScript (0) | 2022.01.05 |
[Programmers] 음양 더하기 / JavaScript (0) | 2022.01.05 |
[Programmers] 없는 숫자 더하기 / JavaScript (0) | 2022.01.05 |