
풀이: dungeons 리스트에 대해 모든 가능한 순서로 나열한 경우를 순열(Permutations)로 생성하고,
생성한 순열 리스트를 모두 탐색하며 탐색 가능한 최대 던전 수를 찾아 리턴한다.
from itertools import permutations
def solution(k, dungeons):
all_perm = list(permutations(dungeons)) # 던전들의 모든 가능한 순서를 순열로 생성
max_cnt = 0 # 최대 던전 수
for elem in all_perm: # 모든 순열 탐색
now_k = k # 매 경우 초기화
cnt = 0
for i in range(0, len(elem)): # 현재 경우의 모든 던전을 돌기
if elem[i][0] <= now_k: # 최소 필요 피로도보다 현재 남은 피로도가 더 크거나 같을 경우 (탐험 가능)
now_k -= elem[i][1] # 피로도 감소
cnt += 1 # 탐험한 던전 수 누적
else: # 탐험 불가능한 경우
break # for문 종료
# 현재 경우의 탐험 가능한 던전 탐험 종료됨
if cnt > max_cnt: # 지금까지의 최대 던전 수보다 더 큰 경우 갱신
max_cnt = cnt
return max_cnt # 최대 던전 수 리턴