https://school.programmers.co.kr/learn/courses/30/lessons/87946
이 문제는 작년 하반기 네이버 파이낸셜 전환형 인턴과 유사한 문제다.
answer = -1
N = 0
Dungeon = []
def dfs(depth, tired):
global Dungeon
global answer
if depth > answer: answer = depth
for d in range(N):
needed = Dungeon[d][0]
use = Dungeon[d][1]
if not visited[d] and tired >= needed:
visited[d] = True
dfs(depth+1, tired-use)
visited[d] = False
# print(depth, tired)
def solution(k, dungeons):
global N, visited
N = len(dungeons)
global Dungeon
Dungeon = dungeons
visited = [False for _ in range(N)]
dfs(0, k)
print(answer)
return answer
solution(80, [[80,20],[50,40],[30,10]])