알고리즘/프로그래머스

[Python] 프로그래머스: 위클리 12 피로도

soheeeeP 2021. 10. 26. 21:46
 

코딩테스트 연습 - 피로도

XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던

programmers.co.kr

def solution(k, dungeons):
    answer = 0
    dungeons.sort(key=lambda x: (x[0] - x[1], -x[1], x[0]), reverse=True)

    value = k
    for d in dungeons:
        if value >= d[0]:
            value -= d[1]
            answer += 1

    return answer
def dfs(k, dungeons, visited, cnt, answer):
    for i in range(len(dungeons)):
        if visited[i] != 1 and dungeons[i][0] <= k:
            visited[i] = 1
            answer = dfs(k - dungeons[i][1], dungeons, visited, cnt + 1, answer)
            visited[i] = 0

    answer = max(answer, cnt)
    return answer


def solution(k, dungeons):
    visited = [0 for i in range(len(dungeons))]
    value = dfs(k, dungeons, visited, 0, 0)
    print(value)
    return value