프로그래머스 Lv.2 87946.피로도

이상·2024년 6월 20일

알고리즘

목록 보기
19/21

87946.피로도



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])
profile
입니다.

0개의 댓글