문제링크:https://www.acmicpc.net/problem/11724
다루는 주제: 그래프 탐색
import sys
N, M = map(int, sys.stdin.readline().split())
matrix = [[0] * (N + 1) for _ in range(N + 1)]
visit = [False] * (N + 1)
count = 0
for _ in range(M):
u, v = map(int, sys.stdin.readline().split())
matrix[u][v] = matrix[v][u] = 1
def dfs(x):
visit[x] = True
for i in range(1, N + 1):
if visit[i] == 0 and matrix[x][i] == 1:
dfs(i)
for j in range(1, N + 1):
if not visit[j]:
dfs(j)
count += 1
print(count)
'Algorithm > 백준(파이썬)' 카테고리의 다른 글
백준 2606 파이썬(Python) 문제풀이 바이러스 (0) | 2023.04.23 |
---|---|
백준 5639 파이썬(Python) 문제풀이 이진 검색 트리 (0) | 2023.04.23 |
백준 1260 파이썬(Python) 문제풀이 DFS와 BFS (1) | 2023.04.23 |
백준 1997 파이썬(Python) 문제풀이 최소 스패닝 트리 (0) | 2023.04.22 |
백준 1991 파이썬(Python) 문제풀이 트리순회 (0) | 2023.04.22 |