0. 사용 함수
- 없음
1. 문제 내용
- 설명
주어지는 숫자 배열에서 숫자 3개를 뽑아,
그 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하는 문제
- 제한 사항
nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
2. 문제 풀이
class Solution {
public int solution(int[] nums) {
int answer = 0;
for(int i=nums.length-1; i>=2; i--){
for(int j=i-1; j >= 1; j--){
for(int l=j-1; l >= 0; l--){
if(isPrime(nums[i]+nums[j]+nums[l])){
answer++;
}
}
}
}
return answer;
}
public static boolean isPrime(int num) {
for (int i = 2; i <= num/2; i++) {
if (num % i == 0) return false;
}
return true;
}
}
3. 채점 결과
- 정확성 테스트
테스트 1 〉 | 통과 (0.40ms, 75.7MB) |
테스트 2 〉 | 통과 (0.62ms, 77.9MB) |
테스트 3 〉 | 통과 (0.17ms, 76.3MB) |
테스트 4 〉 | 통과 (0.14ms, 77.6MB) |
테스트 5 〉 | 통과 (0.74ms, 74MB) |
테스트 6 〉 | 통과 (2.43ms, 79.5MB) |
테스트 7 〉 | 통과 (0.19ms, 76.4MB) |
테스트 8 〉 | 통과 (3.11ms, 73.5MB) |
테스트 9 〉 | 통과 (0.53ms, 76.7MB) |
테스트 10 〉 | 통과 (2.72ms, 74.4MB) |
테스트 11 〉 | 통과 (0.04ms, 75.2MB) |
테스트 12 〉 | 통과 (0.03ms, 76.7MB) |
테스트 13 〉 | 통과 (0.04ms, 73MB) |
테스트 14 〉 | 통과 (0.04ms, 75.4MB) |
테스트 15 〉 | 통과 (0.03ms, 67.1MB) |
테스트 16 〉 | 통과 (5.92ms, 78.6MB) |
테스트 17 〉 | 통과 (1.01ms, 76.3MB) |
테스트 18 〉 | 통과 (0.27ms, 75.8MB) |
테스트 19 〉 | 통과 (0.06ms, 76.5MB) |
테스트 20 〉 | 통과 (7.38ms, 73.5MB) |
테스트 21 〉 | 통과 (6.77ms, 73.9MB) |
테스트 22 〉 | 통과 (0.33ms, 77.3MB) |
테스트 23 〉 | 통과 (0.02ms, 72.1MB) |
테스트 24 〉 | 통과 (6.00ms, 75.7MB) |
테스트 25 〉 | 통과 (6.20ms, 76.4MB) |
테스트 26 〉 | 통과 (0.02ms, 74.9MB) |
소수인지 판별하는 식은 그냥 검색해봤다..ㅎㅎ
소수 구할 때 어차피 곱하는 수의 짝이 존재하기 때문에
(예를 들어 20이라 가정하면 1*20 , 2*10, 4*5 이런 식으로 1의 짝은 20)
2로 나누어 소수인지 판별하면 된다고 한다
싱기방기,,
위에 for문은 일단 3개만 뽑아야 하니 for문 3개랑
내부에 식은 고등학교 때인가 배웠던 조합생각하며 풀었다..
이게 1단계인데 2단계는 더 어렵겠지,,
'프로그래머스 > JAVA' 카테고리의 다른 글
008. 폰켓몬[JAVA] (0) | 2022.05.22 |
---|---|
007. 체육복[JAVA] (0) | 2022.05.21 |
006. 모의고사[JAVA] (0) | 2021.12.30 |
002. [카카오 인턴] 키패드 누르기[JAVA] (0) | 2021.12.18 |
001. 로또의 최고 순위와 최저 순위[JAVA] (0) | 2021.12.13 |