난이도 : Level. 1
언어 : Javascript
출제 내역 : Summer/Winter Coding(~2018)
주어진 숫자 배열에서 무작위로 3개의 수를 더해 나온 값 중에서
소수가 몇개인지 알아내라.
function solution(nums) {
var answer = 0;
let sumNum = 0;
let check = false;
for (let x = 0; x<nums.length; x++) {
for (let y = x+1; y<nums.length; y++) {
for (let z = y+1; z<nums.length; z++) {
sumNum = nums[x] + nums[y] + nums[z]
우선 배열에서 중복없이 3가지 숫자를 더해야 하기 때문에
반복문을 3번 돌려서 3가지 숫자를 더한 값을 도출해줍니다.
for(let i = 2; i<sumNum; i++) {
if (sumNum%i === 0) {
check = false
break;
} else {
check = true
}
}
그 이후, 나머지가 1과 자기자신을 제외한 값을 나눠주는데,
이 때, 나머지가 0이라면 소수가 아닌게 되니 false
를 반환하고
반복문을 종료해줍니다.
모든 과정을 거치면 true
를 반환해줍니다.
if(check === true) {
answer++
}
}
}
}
return answer;
}
마지막으로 true
를 확인하고, 갯수를 나타내는 answer를 1 올려줍니다.
소수를 찾는 과정에서 조금 시간이 걸렸지만
그래도 풀어내니 기분은 좋군요 ㅎㅎ