๐ซcode )
import sys
from collections import deque
input = sys.stdin.readline
def bfs(lst):
q = deque(lst)
while q:
x = q.popleft()
visit[x] = 1
for i in adj[x]:
if not visit[i]:
q.append(i)
visit[i] = 1
return visit.count(1)
n, m = map(int, input().split(' '))
adj = [[] for _ in range(n + 1)]
for _ in range(m):
a, b = map(int, input().split(' '))
adj[b].append(a)
res = []
max_v = 0
for i in range(1, n + 1):
visit = [0] * (n + 1)
visit[i] = 1
if adj[i]:
tmp = bfs(adj[i])
if tmp > max_v:
max_v = tmp
res = [i]
elif tmp == max_v:
res.append(i)
print(*res)
๐ description )
๋ฌธ์ ์ถ์ฒ : www.acmicpc.net/problem/1325
๋ฌธ์ ํด์ปค ๊น์ง๋ฏผ์ ์ ์๋ ค์ง ์ด๋ ํ์ฌ๋ฅผ ํดํนํ๋ ค๊ณ ํ๋ค. ์ด ํ์ฌ๋ N๊ฐ์ ์ปดํจํฐ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊น์ง๋ฏผ์ ๊ท์ฐฎ๊ธฐ ๋๋ฌธ์, ํ ๋ฒ์ ํดํน์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ์ปดํจํฐ๋ฅผ ํดํน ํ ์ ์๋ ์ปดํจํฐ๋ฅผ ํดํนํ๋ ค๊ณ ํ๋ค. ์ด ํ์ฌ์ ์ปดํจํฐ๋ ์ ๋ขฐํ๋ ๊ด๊ณ์, ์ ๋ขฐํ์ง ์๋ ๊ด๊ณ๋ก ์ด๋ฃจ์ด์ ธ ์๋๋ฐ, A๊ฐ B๋ฅผ ์ ๋ขฐํ๋ ๊ฒฝ์ฐ์๋ B๋ฅผ ํดํนํ๋ฉด, A๋ ํดํนํ ์ ์๋ค๋ ์๋ฆฌ๋ค. ์ด ํ์ฌ์ ์ปดํจํฐ์ ์ ๋ขฐํ๋ ๊ด๊ณ๊ฐ ์ฃผ์ด์ก์ ๋, ํ ๋ฒ์ ๊ฐ์ฅ ๋ง์ ์ปดํจํฐ๋ฅผ ํดํนํ ์ ์๋ ์ปดํจํฐ์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ์ฒซ์งธ ์ค์, N๊ณผ M์ด ๋ค์ด์จ๋ค. N์ 10,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์, M์ 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ์ ๋ขฐํ๋ ๊ด๊ณ๊ฐ A B์ ๊ฐ์ ํ์์ผ๋ก ๋ค์ด์ค๋ฉฐ, "A๊ฐ B๋ฅผ ์ ๋ขฐํ๋ค"๋ฅผ ์๋ฏธํ๋ค. ์ปดํจํฐ๋ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ๋ฒํธ๊ฐ ํ๋์ฉ ๋งค๊ฒจ์ ธ ์๋ค. ์ถ๋ ฅ์ฒซ์งธ ์ค์, ๊น์ง๋ฏผ์ด ํ ๋ฒ์ ๊ฐ์ฅ ๋ง์ ์ปดํจํฐ๋ฅผ ํดํนํ ์ ์๋ ์ปดํจํฐ์ ๋ฒํธ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํ๋ค. |
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] ์จ๋ฐ๊ผญ์ง / 1697๋ฒ / ํ์ด์ฌ / python (0) | 2020.12.04 |
---|---|
[๋ฐฑ์ค] 1๋ก ๋ง๋ค๊ธฐ / 1463๋ฒ / ํ์ด์ฌ / Python (0) | 2020.12.03 |
[๋ฐฑ์ค] ์ฐจ์ด๋ฅผ ์ต๋๋ก / 10819๋ฒ / ํ์ด์ฌ / Python (0) | 2020.11.30 |
[๋ฐฑ์ค] ๊ทธ๋ฃน ๋จ์ด ์ฒด์ปค / 1316๋ฒ / ํ์ด์ฌ / Python (0) | 2020.11.29 |
[๋ฐฑ์ค] ์ ๊ธฐ๋๋ฐฐ์ถ / 1012๋ฒ / ํ์ด์ฌ / Python (2) | 2020.11.28 |