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

AMUD·2022년 9월 30일
0

Algorithm

목록 보기
45/78

문제


문제링크

접근

  • 우선 주어진 개수가 최대 50이라는 사항에 완전탐색임을 확인하였다.
  • isPrime 함수를 따로 만들고, 모든 경우의 수에 본 함수를 호출하는 간단한 로직이다.

소스 코드

class Main {
    public static void main(String[] args) throws Exception {
        int[] nums = {1,2,3,4};

        Solution sol = new Solution();
        System.out.println("result : " + sol.solution(nums));
    }
}

class Solution {    
    public int solution(int[] nums) {
        int answer = 0;
        int length = nums.length;
        int sum = 0;
        for (int i = 0; i < length - 2; i++) {
            for (int j = i + 1; j < length - 1; j++) {
                for (int k = j + 1; k < length; k++) {
                    sum = nums[i] + nums[j] + nums[k];
                    if (sum % 2 != 0)
                        answer += isPrime(sum);
                }
            }
        }
        return answer;
    }
    
        public int isPrime(int num){
        boolean isPrime = true;
        if(num <= 7) return 1;
        for(int i = 3; i < num; i+=2){
            if(num % i == 0) isPrime = false;
        }
        
        if (isPrime) return 1;
        return 0;
    }
}
profile
210's Velog :: Ambition Makes Us Diligent

0개의 댓글