반응형
해당 문제는 DFS로 해결이 가능하다. DFS 는 깊이 우선 탐색으로, 한번에 던전을 갈 수 있는 끝까지 탐색한 후 이전 단계로 돌아가는 작업을하면 된다. 이때, 방문 여부와 방문 횟수를 초기화하고 다시 탐색을 하면 끝이다.
answer = 0
def solution(k, dungeons):
global answer
def DFS(k, cnt, dungeons, visited):
global answer
answer = max(answer, cnt) # 최대 방문 횟수
for i in range(len(dungeons)):
if visited[i] == 0 and k >= dungeons[i][0]:
visited[i] = 1 # 방문
DFS(k-dungeons[i][1], cnt+1, dungeons, visited)
visited[i] = 0 # 초기화
visited = [0] * len(dungeons)
DFS(k, 0, dungeons, visited)
return answer
'Python > Algorithm' 카테고리의 다른 글
[프로그래머스] 방문 길이 - Python (0) | 2023.11.23 |
---|---|
[프로그래머스] 더 맵게 - Python (2) | 2023.11.22 |
[프로그래머스] 의상 - Python (0) | 2023.11.16 |
[프로그래머스] n^2 배열 자르기 (1) | 2023.10.23 |
[Algorithm] 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) (0) | 2023.09.23 |