[이코테] 기타 그래프 이론 - 위상 정렬

서희찬·2022년 2월 18일
0

코테준비python 편

목록 보기
13/13
post-thumbnail

위상 정렬

진입차수와 진출차수

위상 정렬 알고리즘

동작 예시


쭉쭉..

이런식으로 나온다

특징

위상정렬 알고리즘

코드

from collections import deque 

v,e = map(int,input().split())

indegree = [0]*(v+1)
graph =[[] for _ in range(v+1)]

for _ in range(e):
    a, b = map(int,input().split())
    graph[a].append(b)
    indegree[b]+=1 

def topology_sort():
    result = []
    q = deque()
    #처음 시작할 때는 진입차수가 0인 노드를 큐에 삽입 
    for i in range(1,v+1):
        if indegree[i]==0:
            q.append(i)
    # 큐가 빌 때까지 반복 
    while q:
        now = q.popleft()
        result.append(now)
        for i in graph[now]:
            indegree[i] -= 1 
            if indegree[i] == 0 :
                q.append(i)
    for i in result:
        print(i,end=" ")
topology_sort()

성능분석

profile
Carnegie Mellon University Robotics Institute | Research Associate | Developing For Our Lives, 세상에 기여하는 삶을 살고자 개발하고 있습니다

0개의 댓글