-문제: https://www.acmicpc.net/problem/1325
1325번: 효율적인 해킹
첫째 줄에, N과 M이 들어온다. N은 10,000보다 작거나 같은 자연수, M은 100,000보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에 신뢰하는 관계가 A B와 같은 형식으로 들어오며, "A가 B를 신뢰한
www.acmicpc.net
어려운 문제는 아니었는데 각 루트 노드에서 시작하기 때문에 visit를 하면 안된다고 생각했지만 하나의 루트 당 이전에 들린 노드는 표시를 해야하므로 bfs단위로 visit를 설정해야한다는 것을 배웠다
그리고 블로그 따라서 똑같이 했는데 자꾸 typeerror, indexerror가 난다.,, 짜증
-정답풀이:
from collections import deque
import sys
input = sys.stdin.readline
def bfs(start):
q = deque()
q.append(start)
visit = [0 for _ in range(n + 1)]
visit[start] = 1
cnt = 1
while q:
st = q.popleft()
for i in s[st]:
if visit[i] == 0:
visit[i] = 1
cnt += 1
q.append(i)
return cnt
n, m = map(int, input().split())
s = [[] for i in range(n + 1)]
for i in range(m):
a, b = map(int, input().split())
s[b].append(a)
result = []
max_cnt = 0
for i in range(1, n + 1):
tmp = bfs(i)
if max_cnt == tmp:
result.append(i)
if max_cnt < tmp:
max_cnt = tmp
result = []
result.append(i)
print(*result)
'백준 > Search' 카테고리의 다른 글
[백준/bfs] 3184번: 양 (0) | 2022.03.04 |
---|---|
[백준/dfs] 13023번: ABCDE (0) | 2022.03.03 |
[백준/bfs] 2251번: 물통 (0) | 2022.03.02 |
[백준/bfs] 1926번: 그림(ValueError 해결하기) (0) | 2022.03.02 |
[백준/bfs] 2638번: 치즈(다시) (0) | 2022.02.28 |