문제 설명
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
- nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
나의 풀이
class Solution {
public int solution(int[] nums) {
int answer = 0;
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++){
if(prime(nums[i],nums[j],nums[k])==1){
answer++;
}
}
}
}
return answer;
}
public int prime(int x,int y,int z){
int w=x+y+z;
int result=0;
for(int l=1;l<=w;l++){
if(w%l==0){
result++;
}
}
if(result==2){
return 1;
}
return 0;
}
}
1. for문을 통해서 배열의 합을 구한다.
2. 소수인지 확인하는 prime 함수를 통해서 약수가 확인되면 result를 1증가시킨다.
3. prime함수의 if문을 통해서 result==2이면 소수이므로 1을 리턴하고 아니면 0을 리턴한다.
4. if문안에 prime함수를 실행시킨다. 1이 나오면 answer값을 1증가시킨다.
'프로그래머스 > level1' 카테고리의 다른 글
[프로그래머스/JAVA] 짝수와 홀수 (0) | 2021.12.30 |
---|---|
[프로그래머스/JAVA] 두 정수 사이의 합 (0) | 2021.12.29 |
[프로그래머스/JAVA] 2016년 (0) | 2021.12.27 |
[프로그래머스/JAVA] 폰켓몬 (0) | 2021.12.26 |
[프로그래머스/JAVA] 소수 만들기 (0) | 2021.12.25 |