본문 바로가기
알고리즘 문제 풀이/완전탐색

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

by 가나무마 2021. 11. 25.
728x90

본 알고리즘 풀이는 Routine Study에서 진행하고 있습니다.
저를 포함한 구성원이 대부분 초보이므로, 원하시는분은 언제라도 들어오셔도 좋습니다.

문의는 댓글 바람.

문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/12977

 

[문제 설명]

숫자를 3개 골라서 소수 만들 수 있는 경우의 수를 구하라

class Solution {
    int answer = 0;
    public int solution(int[] nums) {
        pickThreeNumber(0,nums,0,0);
        return answer;
    }
    // 소수 판별 메서드
    private boolean isPrime(int number) {
        if (number <= 1) return false;
        for (int i = 2; i*i <= number; i++) {
            if (number % i == 0) return false;
        }

        return true;
    }
    private void pickThreeNumber(int index, int[] numbers, int count, int sum) {
        if (count == 3) {
            if (isPrime(sum)) answer++;
            return;
        } else if (index == numbers.length) return;

        pickThreeNumber(index+1, numbers, count, sum);
        pickThreeNumber(index+1, numbers, count+1, sum+numbers[index]);
    }
}

 

 

완전탐색 너무 어렵다. 진짜 자꾸 헷갈린다. 코드 처음 짤 땐 진짜 순식간에 짜는데 막상 보면 예외처리를 1,2개씩 안하는 경우가 많다.

코드를 짜기 전에 생각하고 짜는 습관을 들이고 있기는 한데, 아직도 부족하다 예외처리가 너무 힘들다.

무엇보다 완전탐색 기본이 자꾸 헷갈린다. 더 많이 풀어봐야지.

728x90
반응형

'알고리즘 문제 풀이 > 완전탐색' 카테고리의 다른 글

백준 - 암호 만들기  (0) 2021.12.12
백준 - 한수  (0) 2021.12.12
프로그래머스 - 모의고사  (0) 2021.11.12
2309번 : 일곱난쟁이  (1) 2021.10.26
프로그래머스 - 모의고사  (0) 2021.08.24