본문으로 바로가기
728x90
반응형

문제

 

 

반응형

풀이

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
class Solution {
    public static boolean isPrime(int n) {                  //소수인지 판별해주는 메소드
        for (int i = 2; i < n; i++) {
            if (n % i == 0) {
                return false;   
            }
        }
        return true;
    }
    
    public int solution(int[] nums) {                      //nums에서 i번째, j번째, k번째 정수 총 3개를 뽑는데
        int answer = 0;                                    //항상 j는 i 보다, k는 j 보다 커야 중복된 경우를 뽑지 않음         
        for (int i = 0; i < nums.length - 2; i++) {        //i는 nums 가장 끝-2 까지만 뽑음
            for (int j = 1; j < nums.length - 1; j++) {    //j는 nums 가장 끝-1 까지만 뽑음
                if (i >= j) {                              //j가 i보다 같거나 작으면 그대로 for문을 한번 더 돌림
                    continue;
                }
                for (int k = 2; k < nums.length; k++) {    //k는 nums 끝까지 뽑음 
                    if (j >= k) {                          //k가 j보다 같거나 작으면 그대로 for문을 한번 더 돌림
                        continue;
                    }
                    int n = nums[i] + nums[j] + nums[k];  //i번째 j번째 k번째 정수를 모두 더해서
                    if (isPrime(n)) {                     //소수인지 판별
                        answer++;                         //소수면 answer에 +1 카운트
                    }
                }
            }
        }
        return answer;
    }
}
cs

 

728x90
반응형