위상 정렬이란 어떤 일들을 순서대로 해야 할 때, 선행 조건이 있는 작업들의 실행 순서를 정하는 방법이다. 방향 비순환 그래프(DAG, Directed Acyclic Graph)에서 적용가능하다. DFS기반과 BFS기반으로 구현할 수 있다. 이 글에서는 BFS기반으로 작성했다. 위상 정렬 알고리즘의 작동 과정은 아래와 같다. 1. 진입 차수가 0인 node를 queue에 넣는다.2. queue에 넣은 노드의 다음 node의 진입차수를 1 줄인다.3. q가 비어있을 때까지 2를 반복한다. 코드로 작성하면 아래와 같다. int st[32001]; // 노드들의 진입차수vector graph[32001]; // 노드 연결int N; // 노드의 수queue q;vector ans;void ts() { for..