선행 관계가 있는 작업들의 실행 순서 찾기 + 사이클(데드락) 판정. 진입 차수 0부터 처리하는 Kahn's algorithm이 표준입니다.
아침에 옷을 입는 순서를 생각해 봅니다. 양말을 신어야 신발을 신을 수 있고, 셔츠를 입어야 재킷을 걸칠 수 있습니다. 그래서 지금 바로 입을 수 있는 옷(앞에 걸린 조건이 없는 옷)부터 하나씩 입고, 하나 입을 때마다 그 옷을 기다리던 다른 옷들이 새로 입을 수 있는 상태가 됩니다. 만약 "A를 입어야 B를 입고, B를 입어야 A를 입는다"면 영원히 시작할 수 없습니다.
위상정렬은 앞에 걸린 조건이 없는 작업부터 꺼내고, 꺼낼 때마다 그 작업을 기다리던 일들의 대기 개수를 하나씩 줄여 가며 전체 순서를 만드는 방법입니다.