문제링크:https://www.acmicpc.net/problem/2606
다루는 주제: 그래프 탐색
import sys
N = int(sys.stdin.readline()) # N은 컴퓨터의 개수
M = int(sys.stdin.readline()) # M은 간선의 개수
matrix = [[0] * (N + 1) for _ in range(N + 1)] # 영행렬
virus = [0] * (N + 1)
count = 0
for _ in range(M):
a, b = map(int, sys.stdin.readline().split())
matrix[a][b] = matrix[b][a] = 1
def dfs(v):
global count
virus[v] = 1
for i in range(1, N + 1):
if virus[i] == 0 and matrix[v][i] == 1:
count += 1
dfs(i)
dfs(1)
print(count)
'Algorithm > 백준(파이썬)' 카테고리의 다른 글
백준 11725 파이썬(Python) 문제풀이 트리의 부모 찾기 (0) | 2023.04.24 |
---|---|
백준 2178 파이썬(Python) 문제풀이 미로탐색 (0) | 2023.04.23 |
백준 5639 파이썬(Python) 문제풀이 이진 검색 트리 (0) | 2023.04.23 |
백준 11724 파이썬(Python) 문제풀이 연결 요소의 개수 (0) | 2023.04.23 |
백준 1260 파이썬(Python) 문제풀이 DFS와 BFS (1) | 2023.04.23 |