728x90
반응형
DFS & BFS 문제이다. 그런데 DFS로 풀면 시간초과가 계속 나와서 그냥 BFS로만 풀었다.
입력을 받을 때는 sys.stdin.readline을 사용하고, Python3가 아닌 PyPy3로 제출해야 통과된다.
BFS 풀이
from collections import deque
import sys
def bfs(node):
q = deque()
q.append(node)
check[node] = 1
while q:
node = q.popleft()
for n in graph[node]:
if check[n] == 0:
check[n] = 1
q.append(n)
N, M = map(int, sys.stdin.readline().split())
graph = [[] for _ in range(N+1)]
for _ in range(M):
u, v = map(int, sys.stdin.readline().split())
graph[v].append(u)
res = []
for i in range(1, N+1):
check = [0]*(N+1)
bfs(i)
res.append(check.count(1))
m = max(res)
for i in range(N):
if res[i] == m:
print(i+1, end=' ')
print()
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 14145번 Žetva(python) (0) | 2021.03.16 |
---|---|
백준 알고리즘 14496번 그대, 그머가 되어(python) (0) | 2021.03.16 |
백준 알고리즘 16390번 Sheba’s Amoebas(python) (0) | 2021.03.16 |
백준 알고리즘 19621번 회의실 배정 2(python) (0) | 2021.03.16 |
백준 알고리즘 2210번 숫자판 점프(python) (0) | 2021.03.16 |