BFS 기본적인 문제인듯 하다.
# 2606 바이러스 실버3
from collections import deque
computer = int(input())
network = int(input())
adjl = [[] for _ in range(computer+1)]
for _ in range(network):
s,e = map(int,input().split())
adjl[s].append(e)
adjl[e].append(s)
def bfs(v):
deq = deque()
deq.append(v)
visited = [0] * (computer + 1)
visited[v] = 1
cnt = 0
while deq:
value = deq.popleft()
for i in range(1,computer+1):
if not visited[i] and i in adjl[value]:
visited[i] = visited[value] + cnt
cnt += 1
deq.append(i)
return cnt
print(bfs(1))
'알고리즘 문제풀이' 카테고리의 다른 글
백준 7569 토마토 Python 그래프 BFS 골드 5 (0) | 2024.03.31 |
---|---|
백준 1991 트리 순회 Python 트리 DFS 실버 1 (0) | 2024.03.31 |
백준 5014 스타트링크 Python BFS 실버 1 (2) | 2024.03.31 |
백준 1193 분수 찾기 Python 수학 실버 5 (0) | 2024.03.29 |
백준 1920 수 찾기 Python 이진탐색 실버 4 (0) | 2024.03.29 |