[DFS/BFS] 1325-효율적인 해킹

조은지·2021년 9월 5일
0

링크 - 효율적인 해킹

한마디로~! 별로다^^!

코드

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를 사용해야 시간초과가 안뜬다고 한다.

0개의 댓글

관련 채용 정보