백준 선수과목 (prerequisite)
[골드 5] 백준 14567 - 선수과목 (Prerequisite) (파이썬)
[골드 5] 백준 14567 - 선수과목 (Prerequisite) (파이썬)
2025.07.14분류 : 다이나믹 프로그래밍링크 : https://www.acmicpc.net/problem/14567풀이총 N개의 과목이 주어지며, M개의 선수 조건이 주어진다.모든 과목에 대해 가장 빠른 이수 학기를 출력해야한다.N, M = map(int, input().split())adj = [[] for _ in range(N)]for _ in range(M) : a, b = map(int, input().split()) a, b = a - 1, b - 1 adj[b].append(a)adj[b].append(a)는 b를 듣기 위해 a를 먼저 들어야 한다는 조건이므로, b에서 a로 역방향 간선을 저장한다.즉, b의 선수 과목들을 adj[b]에 저장한다.cache = [-1] * Ncache[i]..