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 |