


10분만에 풀었당 키키..
permutations를 써서 시간초과될까봐 걱정했는데 아니어서 다행
구하고자 하는 것 : 최대 던전 수
조건 : 최소 필요 피로도보다 큰 k를 가지고 시작해 소모 피로도를 빼야 함
🧚♀️정답코드
from itertools import permutations
def solution(k, dungeons):
answer = 0
lst = list(permutations(dungeons, len(dungeons)))
for i in lst:
cnt = 0
test = k
for j in i:
if test >= j[0]:
test -= j[1]
cnt += 1
else:
break
if cnt >= answer:
answer = cnt
return answer
그런데 다 풀고 다른 사람들의 풀이도 봤는데 어떤 분이 한 줄으로 푸셨다.... ㅎ,,,,, ㅋㅋ.....
또 다시 시작된 가우스의 재림
solution = lambda k, d: max([solution(k - u, d[:i] + d[i+1:]) + 1 for i, (m, u) in enumerate(d) if k >= m] or [0])