[백준] 2252번 줄세우기( 파이썬, 위상정렬)
728x90
반응형
from collections import defaultdict
from collections import deque
height=defaultdict(list)
cnt=defaultdict(int)
dq=deque()
n,m=map(int,input().split())
for i in range(m):
a,b=map(int,input().split())
height[a].append(b)
cnt[b]+=1 # b이전에 a가 선행된다
for i in range(1,n+1):
if cnt[i]==0:
dq.append(i)
result=[]
while dq:
x=dq.popleft()
result.append(x)
for j in height[x]:
cnt[j]-=1
if cnt[j]==0:
dq.append(j)
for x in result:
print(x, end=' ')
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 2056번 작업 (파이썬, 위상정렬) (0) | 2020.10.10 |
---|---|
[백준] 1766번 문제집 (위상정렬, 우선순위큐, 파이썬) (0) | 2020.10.10 |
백준 10282번 해킹(파이썬) (0) | 2020.10.08 |
백준 1753번 다익스트라 (파이썬) (0) | 2020.10.08 |
[백준] 1260번 bfs와 dfs (python, java) (0) | 2020.10.07 |
TAGS.