본문 바로가기
알고리즘/dfs,bfs

[파이썬🐍] 백준 1325 : 효율적인 해킹

by 코딩개미뚠뚠 2021. 6. 1.
반응형

일단 이 문제는 bfs로 풀었는데 백준에 python3으로 코드를 제출하면 시간초과가 뜬다.😂

그래서 서치해본 결과 대부분 pypy3으로 제출하는 걸 알 수 있었다.

그래도 python3으로 통과가 되는 코드는 없을까? 백준 정답자중에 찾아봤는데 딱 2개를 찾을 수 있었다.

하지만 코드가 너무 길고 정말 복잡하게 푼 코드였다 ㅜㅜ

그래서 pypy3으로 해결한 것이 찝찝하지만 그래도 다른 방법을 찾을 수 없기에 어쩔 수 없다. 

 

from collections import deque
import sys
input = sys.stdin.readline
def bfs(node):
    queue = deque()
    queue.append(node)
    check[node] = 1
    while queue:
        node = queue.popleft()
        for i in graph[node]:
            if check[i] == 0:
                check[i] = 1
                queue.append(i)
N,M = map(int,input().split())
graph = [[] for _ in range(N+1)]
for _ in range(M):
    u,v = map(int,input().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()
반응형

댓글