-
PROGRAMMERES Level 1 Summer/Winter Coding(~2018) (JAVA 자바)PROGRAMMERS/Summer&Winter Coding 2022. 7. 21. 17:43
에라토스테네스의 체
import java.util.*; class Solution { public int solution(int[] nums) { int answer = 0; // 에라토스테네스의 체 boolean flag[] = new boolean[2997]; Arrays.fill(flag, true); flag[0] = flag[1] = false; for(int i=2; i<=Math.sqrt(flag.length); i++){ if(flag[i]) { int j=2; // 소수가 아닌게 false while(i*j<flag.length){ flag[i*j] = false; j += 1; } } } int sum =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++){ sum = nums[i] + nums[j] + nums[k]; if(flag[sum]) answer++; } } } return answer; } }
프라임넘버 함수 만들어서 사용
import java.util.*; class Solution { public static boolean isPrimeNumber(int x){ if(x==1) return false; // 1은 소수 x for(int i=2; i<=Math.sqrt(x); i++){ if(x%i==0) return false; // 나눠지면 소수가 아님 } return true; } public int solution(int[] nums) { int answer = 0; int sum =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++){ sum = nums[i] + nums[j] + nums[k]; if(isPrimeNumber(sum)) answer++; } } } return answer; } }
'PROGRAMMERS > Summer&Winter Coding' 카테고리의 다른 글
[프로그래머스] [JAVA] [Level 2] [Summer/Winter Coding(~2018)] 점프와 순간 이동 (1) 2022.09.22 [프로그래머스] [JAVA] [Level 2] [Summer&Winter Coding] 영어 끝말잇기 (0) 2022.09.17 PROGRAMMERES Level 1 Summer/Winter Coding(~2018) 예산 (JAVA 자바) (0) 2022.08.13