본문 바로가기
Algorithm/PROGRAMMERS[Java]

Lv1. 소수 만들기

by 씨니 2022. 4. 24.
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

'Algorithm > PROGRAMMERS[Java]' 카테고리의 다른 글

Lv1. 없는 숫자 더하기  (0) 2022.04.24
Lv1. 내적  (0) 2022.04.24
Lv1. 완주하지 못한 선수  (0) 2022.04.24
Lv1. K번째 수  (0) 2022.04.24
Lv1. 모의고사  (0) 2022.04.21