숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우를 return하도록 solution 함수를 작성하는 문제이다.
3중 for문을 돌려 서로 다른 숫자를 고른 다음, 고른 숫자들의 합이 소수인지 판별하고, 소수라면 answer에 1을 증가시킨다.
class Solution {
public int solution(int[] nums) {
int answer = 0;
for (int i = 0; i < nums.length; i++) {
for (int j = i+1; j < nums.length; j++) {
for (int k = j+1; k < nums.length; k++) {
if ( isPrime(nums[i] + nums[j] + nums[k]) ) {
answer++;
}
}
}
}
return answer;
}
public boolean isPrime(int n) {
for (int i = 2; i * i <= n; i++) {
if (n % i == 0)
return false;
}
return true;
}
}