코딩테스트 풀이/JAVA
[프로그래머스/Lv.1] 소수 만들기
무지맘
2022. 11. 22. 14:45
1. Input
1) 숫자들이 들어있는 배열 nums
2. Output
1) nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 수
2) 소수는 약수의 개수가 2개인 자연수
3. Constraint
1) nums에 들어있는 숫자의 개수는 3개 이상 50개 이하
2) nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않다.
4. Example
Input: nums={1,2,7,6,4} -> Output: 4
설명:
1 + 2 + 4 = 7
1 + 4 + 6 = 11
2 + 4 + 7 = 13
4 + 6 + 7 = 17
나머지 경우는 모두 소수가 아니다.
5. Code
1) 첫 코드(2022/??)
int answer = 0;
int sum = 0;
// nums[i] + nums[j] + nums[k] = prime number?
for(int i=0 ; i<nums.length-2 ; i++) {
sum = nums[i];
for(int j=i+1 ; j<nums.length-1 ; j++) {
sum += nums[j];
for(int k=j+1 ; k<nums.length ; k++) {
sum += nums[k];
if(isPrime(sum)) answer++;
sum -= nums[k];
} // for k
sum -= nums[j];
} // for j
sum -= nums[i];
} // for i
return answer;
// 소수 판별 메서드
static boolean isPrime(int n) {
for(int i=2 ; i<n ; i++) {
if(n%i == 0) return false;
}
return true;