알고리즘

[프로그래머스] 소수 만들기(Java) *

muerha 2024. 12. 12. 09:56

 

 

 

 


 

 

 

나의 풀이

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        int sum = 0;

        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++){
                    sum = nums[i] + nums[j] + nums[k];
                    
                    if(isPrime(sum)){
                        answer++;
                    }
                }
            }
        }
        return answer;
    }
    
    private boolean isPrime(int num){

        for(int i = 2 ; i < num ; i++){
            if(num % i == 0)
                return false;
        }

        return true;
    } 
}

 

 

 

 

다른 사람의 풀이

class Solution {
    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];
                    
                    boolean isPrime = true;
                    for (int l=2; l*l <= sum; l++) {
                        if (sum % l == 0) {
                            isPrime = false;
                            break;
                        }
                    }
                    
                    if(isPrime)
                        answer++;
                }
            }
        }

        return answer;
    }
}