백준 11724
🔍 알고리즘 분류
💡 문제 풀이
graph에 연결된 정점을 양방향으로 저장
- 방문 리스트
False로, ans(연결된 요소) = 0 초기화
dfs 진행
1) 현재 정점 방문 처리
2) 연결된 정점 탐색 후, 방문하지 않았다면 dfs 진행
1번 노드부터 탐색하며 ans + 1
📄 코드
import sys
sys.setrecursionlimit(100000)
n, m = map(int, input().split())
graph = [[] for _ in range(n + 1)]
visited = [False] * (n + 1)
ans = 0
for _ in range(m):
u, v = map(int, input().split())
graph[u].append(v)
graph[v].append(u)
def dfs(x):
visited[x] = True
for i in graph[x]:
if not visited[i]:
dfs(i)
for i in range(1, n + 1):
if not visited[i]:
ans += 1
dfs(i)
print(ans)