[Algorithm] - Topology Sort(위상정렬)
2022. 10. 12. 08:41
Problem Solving/Algorithm
위상정렬(Topology Sort) 란 ? 위상(Topology)이란, 노드들을 물리적으로 연결해 놓은것을 의미한다. 위상 정렬이라는것은, 위 처럼 노드들을 연결해놓은 그래프를 방향을 거스르지 않도록 나열하는 것이다. 아래 그림을 참고하자. 위상정렬을 가장 잘 설명해줄수 있는 예로 대학교의 선수과목 구조를 예로 들 수 있다. 만약, 특정 과목을 듣기위해 필요한 선수 과목이 있다면, 그 선수과목부터 수강해야 한다. 이때 위상정렬을 사용하면 올바른 강의 순서를 찾아 낼 수 있다. 그래프의 구조에 따라 여러개의 정렬이 나타날 수도 있다. 위상정렬을 사용하기 위해선 시작노드를 특정하기 위해 DAG(Directed Acyclic Graph)여야만 한다. DAG는 사이클이 존재하지 않고, 하나의 방향만을 가지는 그..