백준 1325 효율적인 해킹

강아람·2022년 8월 7일
0

백준

목록 보기
1/4
from collections import deque
import sys

def bfs(graph, start, N):
    flag = [False] * (N + 1)
    queue = deque([start])
    flag[start] = True
    cnt = 1
    while(queue):
        v = queue.popleft()
        for i in graph[v]:
            if not flag[i]:
                queue.append(i)
                flag[i] = True
                cnt += 1
    return cnt

N, M = map(int, input().split())
arr = [[] for _ in range(N+1)]
for i in range(M):
    a, b = map(int, sys.stdin.readline().split())
    arr[b].append(a)

maxHack = 0
maxlist = []
for i in range(1, N+1):
    result = bfs(arr, i, N)
    if maxHack > result:
        continue
    elif maxHack == result:
        maxlist.append(i)
    else:
        maxHack = result
        maxlist = [i]


print(*maxlist, sep=" ")

계속 시간초과 떠서 결국 flag는 다른 분의 코드를 참고하고 pypy를 사용해서 제출했더니 통과,,

지옥같은 시간초과 탈출 성공 💢💥

0개의 댓글