# 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12977
from collections import deque
tmp = []
def do_something(comb):
return list(comb)
def dfs(comb: deque, depth: int):
M = 3
if len(comb) == M: # 종료 조건 1 : M개를 모두 선택했을 때
tmp.append(do_something(comb)) # 선택 후의 알고리즘 호출
return
elif depth == len(some_list): # 종료 조건 2: 리스트의 마지막 까지 탐색했을 때
return
# 현재 depth의 값 포함 재귀 호출
comb.append(some_list[depth])
dfs(comb, depth + 1)
# 현재 depth의 값 미포함 재귀 호출
comb.pop()
dfs(comb, depth + 1)
def solution(nums):
answer = 0
cnt = 0
global some_list
some_list = nums
# 3개 숫자를 선택하기 (그리디)
dfs(deque(), 0)
# 소수 인지 확인하기
for i in tmp:
sum_value = sum(i)
check_prime = 0
for j in range(1, sum_value + 1):
if (sum_value % j) == 0:
check_prime += 1
if check_prime == 2:
cnt += 1
answer = cnt
return answer
'공부 서랍장 > 알고리즘 공부' 카테고리의 다른 글
[프로그래머스] 내적 python (0) | 2022.09.16 |
---|---|
[프로그래머스] 멀쩡한 사각형 python (0) | 2022.09.06 |
[프로그래머스] 모의고사 python (0) | 2022.09.06 |
[프로그래머스] 오픈채팅방 python (0) | 2022.09.06 |
[백준] 16236번 아기상어 C/C++ (0) | 2020.11.15 |