문제 설명
주어진 숫자 중 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;
}
}
for문 3개를 활용하여 경우의 수를 구하고, 3개의 숫자를 합하고 그 숫자가 소수인지 검사하는 prime함수를 활용한다. 활용한 값을 통해 answer값을 구한다.
'프로그래머스 > level1' 카테고리의 다른 글
[프로그래머스/JAVA] 소수 만들기 (0) | 2021.12.28 |
---|---|
[프로그래머스/JAVA] 2016년 (0) | 2021.12.27 |
[프로그래머스/JAVA] 폰켓몬 (0) | 2021.12.26 |
[프로그래머스/JAVA] 수박수박수박수박수박수? (0) | 2021.12.24 |
[프로그래머스/JAVA] 자릿수 더하기 (0) | 2021.12.23 |