백준 2056 작업 Python

Derhon·2023년 12월 13일
0

백준 2056 작업

28.29m

나의 답

import sys
input = sys.stdin.readline

res = 0
timer = [0] * (10 ** 4 + 1)

for i in range(int(input().rstrip())):
    temps = list(map(int, input().rstrip().split()))
    dur = temps[0]
    n = temps[1]
    p_list = temps[2:]
    cur = 0
    if n == 0:
        cur = dur
        timer[i + 1] = cur
    else:
        cur = max(timer[p] for p in p_list) + dur
        timer[i + 1] = cur
    res = max(cur, res)

print(res)

다 풀고 찾아보니 위상정렬 + DP 문제였다!
그런데 다른 풀이를 찾아봐도 내 풀이랑 크게 다른점을 느끼지 못했다.
안되게따 오늘은 위상정렬을 공부해야게따

profile
🧑‍🚀 이사했어요 ⮕ https://99uulog.tistory.com/

0개의 댓글