관리 메뉴

즐겁게, 코드

BOJ 1325번 - 효율적인 해킹 본문

💯 알고리즘/백준 온라인 저지

BOJ 1325번 - 효율적인 해킹

Chamming2 2021. 5. 26. 21:15

[백준 온라인 저지 링크]

 

1325번: 효율적인 해킹

첫째 줄에, N과 M이 들어온다. N은 10,000보다 작거나 같은 자연수, M은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에 신뢰하는 관계가 A B와 같은 형식으로 들어오며, "A가 B를 신뢰한

www.acmicpc.net

우선 이 문제는 테스트케이스 범위로 인해 DFS로 풀면 시간 초과가 납니다.

(※ 시간이 아니더라도, 파이썬의 최대 재귀 제한에 걸릴 예정입니다.)

맞아 봐서 알아요! 😌

[정답 코드 - Python]

from collections import deque

N, M = map(int, input().split())
trust = [[] for _ in range(N + 1)]
count = [0] * (N + 1)


def BFS(node):
    q = deque()
    q.append(node)
    infected = [False] * (N + 1)
    infected[node] = True
    while q:
        node = q.popleft()
        for nextNode in trust[node]:
            if infected[nextNode] == True:
                continue
            else:
                q.append(nextNode)
                infected[nextNode] = True

    return infected.count(True)


for i in range(M):
    dist, src = map(int, input().split())
    trust[src].append(dist)

for node in range(1, N + 1):
    count[node] = BFS(node)

for i in range(len(count)):
    if count[i] == max(count):
        print(i, end=" ")

 

반응형

'💯 알고리즘 > 백준 온라인 저지' 카테고리의 다른 글

백준 4963번 : 섬의 개수  (0) 2021.05.30
BOJ 17086번 - 아기 상어 2  (0) 2021.05.28
BOJ 2583번 - 영역 구하기  (0) 2021.04.29
BOJ 2606번 - 바이러스  (0) 2021.04.27
BOJ 1051번 - 숫자 정사각형  (0) 2021.04.24
Comments
소소한 팁 : 광고를 눌러주시면, 제가 뮤지컬을 마음껏 보러다닐 수 있어요!
와!! 바로 눌러야겠네요! 😆