문제 링크 : 소수 만들기
public int solution(int[] nums) {
int answer = 0;
for(int i = 0; i < nums.length - 2; i++){
for(int j = i + 1; j < nums.length - 1; j++){
for(int k = j + 1; k < nums.length; k++){
int sum = nums[i] + nums[j] + nums[k];
answer += isPrime(sum);
}
}
}
return answer;
}
public int isPrime(int num){
Double root = Math.sqrt(num);
for(int i = 2; i <= root; i++){
if(num % i == 0) return 0;
}
return 1;
}
완전 탐색으로 배열에서 세 원소를 뽑을 수 있는 모든 경우를 확인하고, 소수인지 판별하는 방식으로 문제를 풀었다.
소수 판별은 그 숫자의 제곱근보다 작은 수에서 나누어 떨어지는 수가 없다면 소수로 판별하도록 코드를 작성했다.