문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12977
< 문제 설명 >
<문제 해석>
1. 주어진 숫자 배열 중 3개의 수를 뽑는다.
1-1. 이때 숫자의 순서는 상관없다.
2. 뽑은 3개의 숫자를 더했을 때 소수가 나와야한다.
2-1. 소수는 1을 제외한 자기자신으로만 나누어지는 수.
3. answer은 소수가 나오는 경우의 수
< 문제 풀이 >
class Solution {
public int solution(int[] nums) {
int answer = 0; // 경우의 수 count
// nums.length 중 3개를 뽑아 소수가 되는 수
// 1. nums 중 3개 뽑기, 순서상관x
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++){
int sum = nums[i] + nums[j] + nums[k];
// 2. if(sum이 소수일 때) answer++
if(isPrime(sum)) answer++;
}
}
}
return answer;
}
// 소수 체크 메서드
public boolean isPrime(int n){
boolean check = true;
// n이 1이 아닌 약수로 나누어 떨어질 경우 false
for(int i=2; i <= Math.sqrt(n); i++){
if(n % i ==0) check = false;
}
return check;
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스, JAVA, Lv1, KAKAO] 실패율 (0) | 2023.12.01 |
---|---|
[프로그래머스, JAVA, Lv1] 덧칠하기 (1) | 2023.11.29 |
[프로그래머스, JAVA, Lv1] 기사단원의 무기 (약수) (0) | 2023.11.28 |
[프로그래머스, JAVA, Lv1] 소수 찾기 (1) | 2023.11.27 |
JAVA - Arrays.copyOfRange() / 프로그래머스 lv1 - K번째 수 (0) | 2023.11.10 |