https://school.programmers.co.kr/learn/courses/30/lessons/87946
def solution(k, dungeons):
global answer
answer = 0
visited = [0] * len(dungeons)
def dfs(cnt, cur_k):
global answer
if answer < cnt: # max_answer 업데이트
answer = cnt
for i, (a, b) in enumerate(dungeons):
if cur_k >= a and cur_k >= b and visited[i]==0:
visited[i] = 1
dfs(cnt+1, cur_k-b)
visited[i] = 0
dfs(0, k)
return answer
permutation으로 모든 경우의 수를 구해서 진행해도 된다.
#DFS #깊이우선탐색