내가 푼 방법 : 배열의 원소를 차례로 3개씩 for문을 사용해서 담고, 세 원소의 합을 reduce로구하고, 그 합이 소수인지 계산해서 맞을때마다 카운트를 셌다.
function solution(nums) {
var answer = 0;
let tmp = 0 ;
for (let i = 0; i < nums.length - 2; i++) {
for(let j = i+1; j < nums.length - 1; j++) {
for(let k = j+1; k < nums.length; k++) {
let Arr = [];
Arr.push(nums[i]+nums[j]+nums[k])
tmp = Arr.reduce((a,b) => a + b, 0);
let count = 0;
for(var l=1;l<=tmp;l++){
if(tmp%l==0) count++;
}
if(count==2) answer++;
}
}
}
return answer;
}
어려웠던 점은 소수일때만 카운트를 세고싶었는데, 어떻게 해야할지를 몰랐다. 그래서 그냥 새로운 변수를 하나 만들어서 2이상의 나누어떨어지는 숫자가 생긴다면 (count==1) answer++ 하는 방식이었다.
이번 문제는 for문을 너무 여러번 써서 마치 시험칠때 같은 번호를 여러번 마킹하는 기분이 들었다.