#DFS - 모든 던전이 서로 연결되어있다 생각하고 dfs로 모든 순서 훑기
result = 0
def dfs(k, dungeons, r, visited):
global result
result = max(result, r) #최대 방문 횟수
for i in range(len(dungeons)):
#아직 방문하지 않았고, 최소 피로도 이상 남았다면 방문
if not visited[i] and k >= dungeons[i][0]:
#던전 방문
visited[i] = True
dfs(k - dungeons[i][1], dungeons, r + 1, visited)
#던전 방문이 끝나면 리셋
visited[i] = False
def solution(k, dungeons):
visited = [False] * len(dungeons)
dfs(k, dungeons, 0, visited)
return result'개발 > Algorithm' 카테고리의 다른 글
| [프로그래머스/86971/level2/고득점kit] 전력망을 둘로 나누기 - 완전탐색, BFS (0) | 2023.08.10 |
|---|---|
| [백준/기본기 다지기(2)] 최대공약수(유클리드 호제)&최소공배수, 브루트포스, 피보나치 수(재귀) (0) | 2023.08.08 |
| [백준/기본기 다지기(1)] 약수 / 이진수 / 지능형 기차2 (0) | 2023.08.07 |
| [프로그래머스/42842/level2/고득점kit] 카펫 - 완전탐색, 약수 (0) | 2023.08.07 |
| [프로그래머스/42839/level2] 소수 찾기 - 에라토스테네스 체 알고리즘 사용하기 & set 장점 활용 (0) | 2023.08.07 |