-
프로그래머스: 소수만들기코딩테스트 문제 풀이/프로그래머스 2023. 11. 23. 00:09
내 코드
import java.util.Arrays; class Solution { public int solution(int[] nums) { int answer = 0; Arrays.sort(nums); int lenNums = nums.length; boolean[] isPrime = findPrime(nums[lenNums - 1] + nums[lenNums - 2] + nums[lenNums - 3]); 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++) { if (isPrime[nums[i] + nums[j] + nums[k]]) answer++; } } } return answer; } private boolean[] findPrime(int max) { boolean[] isPrime = new boolean[max + 1]; Arrays.fill(isPrime, true); for (int i = 2; i * i < isPrime.length; i++) { if (isPrime[i]) { for (int j = i * i; j <= isPrime.length - 1; j += i) { isPrime[j] = false; } } } return isPrime; } }
소요시간 : 10분 40초
지난번에 학습한 에라토스테네스의 체 로직을 사용해보았다. 👍
'코딩테스트 문제 풀이 > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 실패율 (0) 2023.11.23 프로그래머스: 서울에서 김서방 찾기 (0) 2023.11.23 프로그래머스 : 부족한 금액 계산하기 (0) 2023.11.22 프로그래머스 : 체육복 (0) 2023.11.22 프로그래머스: 자연수 뒤집어 배열로 만들기 (0) 2023.11.22