링크 - 효율적인 해킹
한마디로~! 별로다^^!
import sys
from collections import deque
N,M = map(int,sys.stdin.readline().split())
graph=[[] for i in range(N+1)]
for i in range(M):
v1, v2 = map(int,sys.stdin.readline().split())
graph[v2].append(v1)
answers=[]
def bfs(v):
count=1
queue = deque()
queue.append(v)
visited = [False]*(N+1)
visited[v]=True
while queue:
node = queue.popleft()
for i in graph[node]:
if not visited[i]:
visited[i]=True
queue.append(i)
count+=1
return count
for i in range(1,N+1):
answers.append(bfs(i))
max_cnt=max(answers)
for i,answer in enumerate(answers):
if max_cnt==answer:
print(i+1,end=' ')
문제는 어렵지 않았다. 정말 평범한 DFS/BFS문제...
나는 그냥 BFS로 처음부터 풀었는데 DFS로 풀면 메모리 초과가 난다고 한다.
BFS로 풀 때도 input()대신 sys.stdin.readLine()을 사용해야 하고 언어 선택할 때 python3대신 pypy3를 사용해야 시간초과가 안뜬다고 한다.