[Algorithm] 위상 정렬(Topological Sort)
📂 위상 정렬이란? DAG(Directed Acycle Graph : 비순환 방향 그래프)에서 정점들을 선형으로 정렬하는 것을 말한다. DAG는 말 그대로, 사이클이 존재하지 않으면서 방향성을 가진 그래프이다. 이해하기 쉽게 그래프를 통해 알아보자. 다음과 같은 DAG가 있다고 가정해보자. 정점들의 위상에 맞게 정렬하는 것이므로, 간선의 방향성에 맞게(방향성을 조건으로 삼아서) 정점들의 번호를 선형으로 저장하는 것이다. 위 그래프를 예로 본다면, 다음과 같이 정렬될 수 있다. 1 3 5 4 2 6 이 정렬 조건에서 무엇이 만족되어야 하냐면, 모든 간선마다 1에서 4로 향하는 간선이 있다면 정렬 조건에서 1번이 4번보다 먼저 나타나야 한다. 3번에서 6번으로 바로가는 간선은 없지만, 2번으로 가는 간선이 ..