
문제 : https://www.acmicpc.net/problem/2252

나의 풀이
from collections import deque
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
graph = [[] for _ in range(n+1)]
indegree = [0] * (n+1)
for _ in range(m):
a, b = map(int, input().split())
graph[a].append(b)
indegree[b] += 1
queue = deque()
for i in range(1, n+1):
if indegree[i] == 0:
queue.append(i)
result = []
while queue:
now = queue.popleft()
result.append(now)
for next in graph[now]:
indegree[next] -= 1
if indegree[next] == 0:
queue.append(next)
print(*result)
위상정렬 문제
'Coding Test > Baekjoon' 카테고리의 다른 글
| 백준 / 3190번 / 뱀 / python 파이썬 (0) | 2025.10.22 |
|---|---|
| 백준 / 15683번 / 감시 / python 파이썬 (0) | 2025.09.22 |
| 백준 / 2206번 / 벽 부수고 이동하기 / python 파이썬 (0) | 2025.08.22 |
| 백준 / 10026번 / 적록색약 / python 파이썬 (3) | 2025.08.13 |
| 백준 / 2470번 / 두 용액 / python 파이썬 (1) | 2025.08.12 |