문제
https://school.programmers.co.kr/learn/courses/30/lessons/87946
설계
- 던전의 개수는 8개 이하로 가정하므로 dfs로 접근
def dfs(level, stamina, clear, dungeons, visit):
global answer
answer = max(clear, answer)
if level == len(dungeons):
return
for i in range(len(dungeons)):
if stamina >= dungeons[i][0] and visit[i] == 0: # 최소피로도, 방문여부 확인
visit[i] = 1
dfs(level + 1, stamina - dungeons[i][1], clear + 1, dungeons, visit)
visit[i] = 0
def solution(k, dungeons):
visit = [0] * len(dungeons) # 공략한 던전은 방문하지 않음
dfs(0, k, 0, dungeons, visit)
return answer
answer = 0
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] 숫자 카드 나누기 - 파이썬 (0) | 2022.12.18 |
---|---|
[프로그래머스] 땅따먹기 (0) | 2022.12.14 |
[프로그래머스] 과일 장수 (0) | 2022.12.12 |
[프로그래머스] 불길한 수열 (불행한 수)(Unlucky Number) (0) | 2022.12.12 |
[프로그래머스] 귤 고르기 (0) | 2022.12.11 |