Algorithm/PROGRAMMERS[Java]
Lv1. 소수 만들기
씨니
2022. 4. 24. 21:22
728x90
▶ 문제
▶ 풀이방법
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = 0;
//에라토스테네스의 체 사용.(소수판별공식 사용)
boolean[] arr = new boolean[3000];
Arrays.fill(arr, false);
for(int i = 2; i < 3000; i++){
for(int j = i*2; j < 3000; j+=i){
if(arr[j] == true) continue;
arr[j] = true; //소수가 아니면 true, 소수이면 false
}
}
Arrays.sort(nums);
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 num = nums[i] + nums[j] + nums[k];
if(!arr[num]) answer++;
}
}
}
return answer;
}
}
728x90