From 0449806a6c87db2c0295742bf69b862f98119a26 Mon Sep 17 00:00:00 2001 From: ljedd2 Date: Mon, 2 Sep 2024 22:58:59 +0900 Subject: [PATCH] =?UTF-8?q?2024-09-01=20=EC=A4=84=20=EC=84=B8=EC=9A=B0?= =?UTF-8?q?=EA=B8=B0.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4 \354\204\270\354\232\260\352\270\260.py" | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 "LJEDD2/2024-2/\354\234\204\354\203\201\354\240\225\353\240\254/\354\244\204 \354\204\270\354\232\260\352\270\260.py" diff --git "a/LJEDD2/2024-2/\354\234\204\354\203\201\354\240\225\353\240\254/\354\244\204 \354\204\270\354\232\260\352\270\260.py" "b/LJEDD2/2024-2/\354\234\204\354\203\201\354\240\225\353\240\254/\354\244\204 \354\204\270\354\232\260\352\270\260.py" new file mode 100644 index 00000000..c6538ecc --- /dev/null +++ "b/LJEDD2/2024-2/\354\234\204\354\203\201\354\240\225\353\240\254/\354\244\204 \354\204\270\354\232\260\352\270\260.py" @@ -0,0 +1,28 @@ +# BOJ2252 줄 세우기 +from collections import deque + +n, m = map(int, input().split()) +graph = [[] for _ in range(n + 1)] +indegree = [0] * (n + 1) # 진입 차수 저장할 리스트 + +for i in range(m): + s,e = map(int, input().split()) + [s].append(e) + indegree[e] += 1 # 진입 차수 데이터를 저장 + +# B를 하기 위해 A라는 작업을 먼저 해야 하는 구조가 있을 때, +# 그 작업 순서를 구해주는 것 = 위상정렬 + +queue = deque() +for i in range(1, n + 1): + if not indegree[i]: + queue.append(i) + +while queue: # 위상 정렬 수행 , 진입 차수 없애! + now = queue.popleft() + print(now, end=' ') + + for next in graph[now]: + indegree[next] -= 1 # 진입 차수 0인 정점 큐에 삽입 + if not indegree[next]: + queue.append(next) \ No newline at end of file