from itertools import permutations
def solution(k, dungeons):
dun = list(permutations(dungeons))
answer = 0 ; aa = []
for d in dun :
a = 0
piro = k
for i in d:
if piro < i[0]:
break
elif piro >= i[0]:
a += 1
piro -= i[1]
if answer < a:
answer = a
aa.append(a)
return answer
풀이
permutations으로 모든 순열을 만든 다음, 통과 가능한 최대 갯수가 무엇인지를 찾도록 코드를 짰다..
이거 때문에 며칠을 쓴건지😿..? 생각보다 간단한 문제였다.
5000개인 리스트에 permutations을 적용한다해도 조건문으로 5000개까지 모두 돌아가지 않게 코드를 짜면 되는 것이었다. 다시 말해, 앞서 등장한 리스트들로 piro를 업데이트하고 다음 리스트를 사용해서 계산을 해야한다고 할 때 최소 필요 피로도(=i[0])보다 piro가 작다면 그냥 break하면 되는 것이다.