Skip to content

Commit ebef2f6

Browse files
committed
[BOJ] 선수 과목 / 골드5 / 50분
https://www.acmicpc.net/problem/14567
1 parent 64465d8 commit ebef2f6

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
from collections import deque
2+
3+
def topology_sort(graph, inDegree):
4+
queue = deque()
5+
6+
result = [-1] * (N+1)
7+
8+
9+
# 진입차수가 0인 정점을 queue에 추가
10+
for i in range(1, N+1):
11+
if inDegree[i] == 0:
12+
queue.append(i)
13+
result[i] = 1
14+
15+
16+
while queue:
17+
now = queue.popleft()
18+
19+
for vertex in graph[now]:
20+
inDegree[vertex] -= 1
21+
if inDegree[vertex] == 0:
22+
queue.append(vertex)
23+
result[vertex] = result[now] + 1
24+
25+
return result
26+
27+
28+
29+
# 입력값 받기
30+
N, M = map(int, input().split())
31+
32+
# 과목 개수만큼 이차원 리스트 만들기
33+
graph = [ [] for _ in range(N+1)]
34+
35+
# 진입차수 리스트
36+
inDegree = [0] * (N+1)
37+
result = [] * (N+1)
38+
39+
for i in range(M):
40+
A, B = map(int, input().split())
41+
graph[A].append(B)
42+
inDegree[B] += 1
43+
44+
result = topology_sort(graph, inDegree)
45+
for i in range(1,N+1):
46+
print(result[i], end=" ")

0 commit comments

Comments
 (0)