[알고리즘] 위상 정렬(Topology Sort)
n, m = map(int, input().split())graph = [[] for _ in range(n+1)]degree = [0 for _ in range(n+1)]q = []#삽입하면서 우선순위 설정for i in range(m): a, b = map(int, input().split()) graph[a].append(b) degree[b] += 1#우선순위가 제일 높은거만 푸시for i in range(1, n+1): if degree[i] == 0: heapq.heappush(q, i)answer = []while q: temp = heapq.heappop(q) answer.append(temp) #우선순위가 높은거중에 제일 쉬운문제부터 정답에 푸..