더북(TheBook)

이제 위상 정렬을 담당하는 메서드를 보죠.

코드 12-2

    def topological_sort(self):
        self.init_visited()
        ts_list = []
        for i in range(len(self.visited)):
            if not self.visited[i]:
                self.dfs(i, ts_list)
        ts_list.reverse()
        return ts_list

코드 12-2를 보면 topological_sort() 메서드가 위상 정렬을 담당합니다. 생긴 모양새는 이전에 구현했던 dfs_all과 비슷합니다. 그런데 한 가지 ts_list라는 리스트가 있군요. 게다가 반환하기 전에는 reverse()까지 호출합니다. 이 ts_list는 어떤 역할을 할까요?

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.