백_곰
2022. 2. 9. 21:11
1. 문제 설명
2. 입출력 조건 및 예제
입력 조건
문제 설명 참고
출력 조건
문제 설명 참고
입력 예제
2
1 2 3 4
1 2 7 6 4
출력 예제
1
4
3. 제약 조건
문제 설명 참고
4. 가정법
X
5. 기저 사례
X
6. 코드
public class Main {
private static BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
private static StringTokenizer st;
private static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
int c = Integer.parseInt(sc.readLine());
for(int i=0; i<c; i++){
st = new StringTokenizer(sc.readLine());
int N = st.countTokens();
int[] A = new int[N];
for(int j=0; j<N; j++) {
A[j] = Integer.parseInt(st.nextToken());
}
sb.append(findPrime(A)+"\n");
}
System.out.println(sb);
}
private static int findPrime(int[] A) {
ArrayList<Integer> arr = new ArrayList<>();
int ret=0;
for(int i=0; i<A.length-2; i++) {
for(int j=i+1; j<A.length-1; j++) {
for(int k=j+1; k<A.length; k++) {
arr.add(A[i]+A[j]+A[k]);
}
}
}
for(int i=0; i<arr.size(); i++) {
int tmp = arr.get(i);
boolean isTrue=true;
for(int j=2; j<tmp; j++) {
if(tmp%j==0) {
isTrue=false;
break;
}
}
if(isTrue) {
ret++;
}
}
return ret;
}
}
( 말 그대로 중복없이 모든 경우의 수를 구하고 소수를 구해주면 된다. )