위상 정렬 알고리즘 (Topology Sort) 위상 정렬은 방향성이 있는 유향 그래프에서 순서가 정해져있는 정점들의 순서를 거스르지 않으면서 모든 정점을 나열하는 알고리즘입니다. 위상 정렬의 대표적인 예시는 다음과 같습니다. 예를 들어 컴퓨터공학과에서 알고리즘 과목을 수강하고자 할 때 해당 과목을 수강하기 위한 선수 과목들이 존재합니다. 즉, 알고리즘을 수강하기 위해선 자료구조를 먼저 수강해야 하며 C프로그래밍을 수강하기 위해서는 먼저 이산수학을 수강해야 할 것입니다. 순서가 존재하는 유향그래프에서 위 예시를 위상 정렬하면 다음과 같은 순서가 나타납니다. 이산수학 -> 프로그래밍 원리 -> C프로그래밍 -> 자료구조 -> 알고리즘 위상 정렬을 통해 올바른 수강순서를 찾아낼 수 있습니다. 이처럼 선후 관..
[알고리즘] 위상 정렬 알고리즘 (Topology Sort)
위상 정렬 알고리즘 (Topology Sort) 위상 정렬은 방향성이 있는 유향 그래프에서 순서가 정해져있는 정점들의 순서를 거스르지 않으면서 모든 정점을 나열하는 알고리즘입니다. 위상 정렬의 대표적인 예시는 다음과 같습니다. 예를 들어 컴퓨터공학과에서 알고리즘 과목을 수강하고자 할 때 해당 과목을 수강하기 위한 선수 과목들이 존재합니다. 즉, 알고리즘을 수강하기 위해선 자료구조를 먼저 수강해야 하며 C프로그래밍을 수강하기 위해서는 먼저 이산수학을 수강해야 할 것입니다. 순서가 존재하는 유향그래프에서 위 예시를 위상 정렬하면 다음과 같은 순서가 나타납니다. 이산수학 -> 프로그래밍 원리 -> C프로그래밍 -> 자료구조 -> 알고리즘 위상 정렬을 통해 올바른 수강순서를 찾아낼 수 있습니다. 이처럼 선후 관..
2021.07.16