728x90
https://www.acmicpc.net/problem/2252
💡 문제 풀이
위상 정렬 문제이다!
위상 정렬을 구현해주면 된다 ㅎㅎ
✔️ 느낀 점
💻 코드
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
q, ans = [], []
for i in range(1, N+1):
if not indegree[i]: q.append(i)
while q:
n = q.pop(0)
ans.append(n)
for i in graph[n]:
indegree[i] -= 1
if not indegree[i]: q.append(i)
for i in ans:
print(i, end=' ')
'문제 풀이 > 백준(BOJ)' 카테고리의 다른 글
[Python] 백준 1038번 : 감소하는 수 (0) | 2022.08.05 |
---|---|
[Python] 백준 1516번 : 게임 개발 (0) | 2022.08.05 |
[Python] 백준 1238번 : 파티 (0) | 2022.08.02 |
[Python] 백준 1753번 : 최단경로 (0) | 2022.08.01 |
[Python] 백준 10819번 : 차이를 최대로 (0) | 2022.08.01 |
댓글