사실 이 문제는 예전에 BFS로 풀었던 문제인데 이번에 DFS로 한 번 풀어봤다.
확실히 BFS보다는 DFS가 코드가 간단해보인다,,,
https://dkan9634.tistory.com/140
[백준/BOJ][Python] 2606번 바이러스
[백준/BOJ][Python] 2606번 바이러스 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다
dkan9634.tistory.com
DFS 코드
import sys
input = sys.stdin.readline
def dfs(graph, checked, V):
checked[V] = True
for i in graph[V]:
if not checked[i]:
dfs(graph, checked, i)
node = int(input())
edge = int(input())
graph = [[] for _ in range(node+1)]
checked = [False]*(node+1)
for i in range(edge):
x, y = map(int, input().split())
graph[x].append(y)
graph[y].append(x)
cnt = 0
dfs(graph, checked, 1)
for i in range(node+1):
if checked[i]:
cnt += 1
print(cnt-1)
'Algorithm > 알고리즘 문제' 카테고리의 다른 글
[백준/BOJ][Python] 1463번 1로 만들기 (1) | 2023.10.02 |
---|---|
[백준/BOJ] 2644번 촌수계산 (0) | 2023.09.18 |
[프로그래머스] Level2. 전력망을 둘로 나누기 (0) | 2023.09.18 |
[백준/BOJ] 백트래킹 N과 M시리즈(1)~(8) (1) | 2023.09.11 |
[백준/BOJ][Python] 5635번 생일 (0) | 2023.03.18 |