728x90
반응형
문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/87946
풀이:
from itertools import permutations
def solution(k, dungeons):
# 방문할 순서 조합 만들기
numbers = list(x for x in range(0,len(dungeons)))
cases = permutations(numbers,len(dungeons))
results = []
for case in cases:
count, now = 0, k
# 인덱스를 불러와서
for idx in case:
# 최소, 소모 피로도
least, req = dungeons[idx][0], dungeons[idx][1]
# 최소 피로도 이상 보유 중
if now >= least:
now -= req
count += 1
else: break
results.append(count)
return max(results)
print(solution(80, [[80, 20], [50, 40], [30, 10]]))
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])
다른사람의 말도 안되는 코드,,
반응형
댓글