본문 바로가기
Problem Solving

[프로그래머스] L2 소수 만들기

by JYHAN 2020. 12. 15.

Graph

[프로그래머스] L2 소수 만들기

[풀이]

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 {
    static int answer = 0;
    static boolean[] primeN= new boolean[3001];
    static boolean[] chk = new boolean[3001];
    public int solution(int[] nums) {
        solve(0,0,0,nums);
        return answer;
    }
    static void solve(int idx, int sum, int cnt, int[] nums){
        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++){
                    int n = nums[i] + nums[j] + nums[k];
                    if(isPrime(n)){
                        answer++;
                    }
                }
            }
        }
    }
    static boolean isPrime(int num){
        if(primeN[num]) return true;
        if(num==2return true;
        for(int i=2; i<=num/2; i++) {
            if(num%i==0) {
                return false;
            }
        }
        return primeN[num]=true;
    }
}
cs

댓글