2021년 4월 17일 토요일

[ Algorithm Java ] 소수만들기

 

문제 ]

문제 설명

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 

숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, 

nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 

소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.


제한사항

nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.

nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.      


numsresult
[1,2,3,4]1
[1,2,7,6,4]4



제출 ]

class Solution {

    public int solution(int[] nums) {

        int answer = 0;

        int sum = 0;

       

        for(int i=0; i<nums.length-2; i++){

            for(int j=i+1; j<nums.length-1;j++){

                for(int k=j+1; k<nums.length; k++){


                    //3개 더한 값이 소수 인지 판별

                    sum = nums[i]+nums[j]+nums[k];

                    int s = 2;

                    for(; s<sum;s++){

                        if(sum%s==0) break;    

                    }


                    //소수라면 answer에 +1

                    if(s==sum) answer+=1;      

                }

            }

        }


        return answer;

    }

}



풀이 ]

반복문을 도는 변수3개로 3가지 수를 더하는 경우의 수를 구현하고,

더한 수의 값이 소수인지 아닌지 판단



댓글 없음:

댓글 쓰기