[프로그래머스 lv2] 피로도(완탐/파이썬) 2/3

밀루·2023년 4월 11일

백준 문제풀이

목록 보기
37/51

https://school.programmers.co.kr/learn/courses/30/lessons/87946

이 문제는 작년 하반기 네이버 파이낸셜 전환형 인턴과 유사한 문제다.

answer = -1
N = 0
Dungeon = []

def dfs(depth, tired):
    global Dungeon
    global answer
    if depth > answer: answer = depth
    for d in range(N):
        needed = Dungeon[d][0]
        use = Dungeon[d][1]
        if not visited[d] and tired >= needed:
            visited[d] = True
            dfs(depth+1, tired-use)
            visited[d] = False
    # print(depth, tired)


def solution(k, dungeons):
    global N, visited
    N = len(dungeons)
    global Dungeon
    Dungeon = dungeons
    visited = [False for _ in range(N)]
    dfs(0, k)
    print(answer)
    return answer
    
solution(80, [[80,20],[50,40],[30,10]])
profile
벨로그에 틀린 코드나 개선할 내용이 있을 수 있습니다. 지적은 언제나 환영합니다.

0개의 댓글