728x90
문제
문제 링크 : https://www.acmicpc.net/problem/2606
2606번: 바이러스
첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어
www.acmicpc.net
CODE
from collections import deque
import sys
input = sys.stdin.readline
v = int(input())
e = int(input())
edges = [[] for _ in range(v + 1)]
for _ in range(e):
a, b = map(int, input().split())
edges[a].append(b)
edges[b].append(a)
q = deque([1])
visited = [False] * (v + 1)
visited[1] = True
while q:
now = q.popleft()
for e in edges[now]:
if not visited[e]:
q.append(e)
visited[e] = True
print(visited[2:].count(True))
풀이
💡 idea
- 1번 컴퓨터와 연결된 모든 컴퓨터를 완전탐색
- DFS / BFS
- 저는 BFS 문제를 연속으로 풀어서 BFS 풀이가 먼저 생각났기에 BFS로 코드를 작성했습니다 🙋♀️
💡 implementation
- 1번 컴퓨터를 제외한 컴퓨터들 중 방문한 컴퓨터를 count하여 결과로 출력
print(visited[2:].count(True))
결과
728x90
'Baekjoon' 카테고리의 다른 글
[BOJ / 백준] 6603번 로또 파이썬(Python) 문제 풀이 (0) | 2021.10.06 |
---|---|
[BOJ / 백준] 11724번 연결 요소의 개수 파이썬(Python) 문제 풀이 (0) | 2021.10.06 |
[BOJ / 백준] 1697번 숨바꼭질 파이썬(Python) 문제 풀이 (0) | 2021.10.06 |
[BOJ / 백준] 2178번 미로 탐색 파이썬(Python) 문제 풀이 (0) | 2021.10.06 |
[BOJ / 백준] 1303번 전쟁 - 전투 파이썬 (Python) 문제 풀이 (0) | 2021.10.06 |