https://www.acmicpc.net/problem/1766
1766๋ฒ: ๋ฌธ์ ์ง
์ฒซ์งธ ์ค์ ๋ฌธ์ ์ ์ N(1 ≤ N ≤ 32,000)๊ณผ ๋จผ์ ํธ๋ ๊ฒ์ด ์ข์ ๋ฌธ์ ์ ๋ํ ์ ๋ณด์ ๊ฐ์ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฑธ์ณ ๋ ์ ์์ ์์์ A,B๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ
www.acmicpc.net
์์์ ๋ ฌ์ ์ด์ฉํด์ ํ๋ฉด ๋๋๋ฐ
'๋จผ์ ํธ๋ ๊ฒ์ด ์ข์ ๋ฌธ์ '์ ๋ํ ์ ๋ณด๋ฅผ ๊ฐ์ ์ผ๋ก ์ ์ฅํ๊ณ
๊ฐ๋ฅํ๋ฉด ์ฌ์ด ๋ฌธ์ ๋ฅผ ๋จผ์ ํ์ด์ผ ํ๋๋ฐ ๋์ด๋๋ 1๋ฒ~n๋ฒ ์ฐจ๋ก๋๋ก ๋์ด ์์ผ๋
ํ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ ์ฐ๋ฉด ๋๋ค. -> ์ฐ์ ์์ ํ ์ฌ์ฉํจ
# ์ฐ์ ์์ํ
from queue import PriorityQueue
# ์์ฑ
q = PriorityQueue()
q = PriorityQueue(maxsize = 8) # ์ต๋ ํฌ๊ธฐ 8
# ์์ ์ถ๊ฐ
q.put(1)
# ์์ ์ญ์
q.get()
# ํ์ ์ฌ์ด์ฆ๋ฅผ ๋ฐํ
q.qsize()
# ํ๊ฐ ๋น์ด์์ผ๋ฉด True, ๋น์ด์์ง ์์ผ๋ฉด False ๋ฐํ
q.empty()
# ํ๊ฐ ๊ฐ๋ ์ฐจ์์ผ๋ฉด True, ๊ทธ๋ ์ง ์์ผ๋ฉด False ๋ฐํ
q.full()
from queue import PriorityQueue
import sys
input = sys.stdin.readline
n, m = map(int, input().split())
info = [[] for _ in range(n+1)]
indegree = [0] * (n+1)
for _ in range(m):
a, b = map(int, input().split())
info[a].append(b)
indegree[b] += 1
q = PriorityQueue()
res = []
for i in range(1, n+1):
if indegree[i] == 0:
q.put(i)
while q.empty() is False:
now = q.get()
res.append(now)
for i in info[now]:
indegree[i] -= 1
if indegree[i] == 0:
q.put(i)
for i in res:
print(i, end=' ')
'๐ค > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 16918: ๋ด๋ฒ๋งจ (Python) (0) | 2023.05.02 |
---|---|
๋ฐฑ์ค 12933: ์ค๋ฆฌ (Python) (0) | 2023.04.14 |
๋ฐฑ์ค 2252: ์ค ์ธ์ฐ๊ธฐ (Python) (0) | 2022.08.05 |
๋ฐฑ์ค 2887: ํ์ฑ ํฐ๋ (Python) (0) | 2022.08.04 |
๋ฐฑ์ค 1774: ์ฐ์ฃผ์ ๊ณผ์ ๊ต๊ฐ (Python) (0) | 2022.08.04 |