본문 바로가기

Coding Test/Programmers

[프로그래머스/파이썬] 피로도

728x90

나의 풀이

from itertools import permutations

def solution(k, dungeons):
    answer = 0
    for order in permutations([i for i in range(len(dungeons))], len(dungeons)):
        hp = k
        count = 0
        for i in order:
            if dungeons[i][0] <= hp:
                count += 1
                hp -= dungeons[i][1]
            else:
                break
        answer = max(answer, count)
    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])

 

반응형