import itertools
def solution(k, dungeons):
#노가다를 위해 순서로 다 비교한다!
#dungeon들의 index들을 담은 리스트 생성
dungeon_index = [i for i in range(len(dungeons))]
#dungeon들의 index들의 ""순서""들을 담은 이터레이터 생성
index_cases = itertools.permutations(dungeon_index, len(dungeons))
#max count값을 담는 변수 생성
max_cnt = -1
#dungeone들의 index들을 하나씩 뽑아서 돌림 ex ) index_case = [2,1,3,0]
for index_case in index_cases:
#인덱스 순서의 케이스 하나 당 던전을 돌 수 있는 수를 위해 생성한 변수
tmp_cnt = 0
#테스트 케이스 하나씩 돌릴 때마다 stamina 초기화 해줘야함
stamina = k
#인덱스 케이스 안의 인덱스 하나씩 뽑아서 for문 돌림
for i in index_case:
need_stamina, consume_stamina = dungeons[i]
#피로도가 최소 필요 피로도를 충족했을 경우 실행하는 코드
if stamina >= need_stamina:
# print(dungeons[i])
stamina -= consume_stamina
tmp_cnt += 1
#for문이 끝난 후, tmp_cnt와 max_cnt 비교해서 큰 놈을 max_cnt에 담아준다.
if tmp_cnt > max_cnt:
max_cnt = tmp_cnt
return max_cnt