어제의 나보다 성장한 오늘의 나

[프로그래머스][Level2][Java] 소수 만들기 본문

알고리즘/프로그래머스(Programmers)

[프로그래머스][Level2][Java] 소수 만들기

NineOne 2021. 1. 4. 19:07

programmers.co.kr/learn/courses/30/lessons/12977

 

코딩테스트 연습 - 소수 만들기

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때

programmers.co.kr

문제풀이

제한사항중에 "nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다." 라서 무리 없이 완전 탐색을 하였다.

또한 3개로 고정되어 있기때문에 3중 포문으로 빠르게 풀었다.

 

코드

class Solution {
    public int solution(int[] nums) {
        int answer = 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++){
                    if(check(nums[i]+ nums[j] + nums[k])) {
                        answer++;
                    }
                }
            }
        }
        return answer;
    }
    
    public boolean check(int num){
        for(int i=2; i<num; i++){
            if(num % i == 0) return false; 
        }
        
        return true;
    }
}
Comments