티스토리 뷰

프로그래머스 12977번 - 소수 만들기

프로그래머스 12977번 - https://programmers.co.kr/learn/courses/30/lessons/12977

 

요구사항

1. 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하여라.

 

요구사항 분석 및  풀이과정

1. 주어진 숫자 중 3개의 수 조합을 모두 순회한다. - 3중 포문을 사용하면 된다. 단, 범위에 주의하자.

2. 소수는 1과 자기 자신만을 약수로 가지는 수이다. - 약수는 쌍으로 존재하므로, 제곱근까지만 약수를 검사해도 충분하다.

 

소스코드 작성

class Solution {

    private static boolean isPrime(int value) {
        for (int i = 2; i<= (int)Math.sqrt(value); i++) {
          if (value % i == 0) {
              return false;
          }
        }
        
        return true;
    }
    
    public int solution(int[] nums) {
        int result = 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++) {
                    result += (isPrime(nums[i] + nums[j] + nums[k]) ? 1 : 0);
                }
            }
        }
        
        return result;
    }
}

 

결과

 

소스코드 깃허브 주소

링크

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함