๋ฌธ์
๋ฐฉํฅ ์๋ ๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ ๋, ์ฐ๊ฒฐ ์์ (Connected Component)์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ ์ ๊ฐ์ N๊ณผ ๊ฐ์ ์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฐ์ ์ ์ ๋์ u์ v๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ u, v ≤ N, u ≠ v) ๊ฐ์ ๊ฐ์ ์ ํ ๋ฒ๋ง ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ์ฐ๊ฒฐ ์์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
6 5
1 2
2 5
5 1
3 4
4 6
์์ ์ถ๋ ฅ 1
2
์์ ์ ๋ ฅ 2
6 8
1 2
2 5
5 1
3 4
4 6
5 4
2 4
2 3
์์ ์ถ๋ ฅ 2
1
# ํ์ด ๋ฐฉ๋ฒ
์ฐ๊ฒฐ์์์ ๊ฐ์ ๊ตฌํ๊ธฐ > ์ด๋ฐ๊ฑด dfs๊ฐ ๋ ์ ์ ํ๋ค๊ณ ๋ฐฐ์ ๋ค.
10451-์์์ฌ์ดํด ๋ฌธ์ ์ ๊ฑฐ์ ๋น์ทํ๋ฏ(https://dusruddl2.tistory.com/71)
# ์ฝ๋
dfs๋ฅผ ๊ตฌํํ ๋ ๊ตณ์ด graph๋ visited๋ฅผ ์ธ์๋ก ์ ํด์ค ํ์๋ ์์๋ค
# 2025-04-16 ์ฌํ์ด
import sys
# sys.stdin = open("input.txt","r")
sys.setrecursionlimit(10**6)
N, M = map(int,sys.stdin.readline().split())
graph = [[] for _ in range(N+1)]
for _ in range(M):
a, b = map(int,sys.stdin.readline().split())
graph[a].append(b);graph[b].append(a)
visited = [False] * (N+1)
def dfs(curr):
visited[curr] = True
for i in graph[curr]:
if not visited[i]:
dfs(i)
cnt = 0
for i in range(1, N+1):
if not visited[i]:
dfs(i)
cnt += 1
print(cnt)
# 20250410 15:10-15:25
import sys
# sys.stdin = open("input.txt", "r")
sys.setrecursionlimit(10**6)
n, m = map(int,sys.stdin.readline().split())
graph = [[] for _ in range(n+1)]
for _ in range(m):
a, b = map(int,sys.stdin.readline().split())
graph[a].append(b);graph[b].append(a)
visited = [False] * (n+1)
def dfs(graph,v,visited):
visited[v] = True
for i in graph[v]:
if not visited[i]:
dfs(graph,i,visited)
cnt = 0
for i in range(1, n+1):
if not visited[i]:
dfs(graph,i,visited)
cnt += 1
print(cnt)
# ์ฐธ๊ณ (๋ฐํ์ ์ค๋ฅ ํด๊ฒฐ)
ํ์ด์ฌ์ ์คํ ์ค๋ฒํ๋ก์ฐ ๋ฅผ ๋ง๊ธฐ ์ํด, ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ๊ท ๊น์ด(limit) ๋ฅผ ์ฝ 1000์ผ๋ก ์ ํํ๋ค.
sys.setrecursionlimit(10**6)
์ด๋ฅผ ํตํด ์ฌ๊ท ๊น์ด ์ ํ์ ๋๋ ค์ ๋ ๊น์ด ํ์ํ ์ ์๋๋ก ์ค์ ํ๋ฉด ์ค๋ฅ ํด๊ฒฐ
'๐ Study > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Silver II] 2644 - ์ด์๊ณ์ฐ (0) | 2025.04.12 |
---|---|
[Silver I] 1697- ์จ๋ฐ๊ผญ์ง (0) | 2025.04.10 |
[Silver I] 2667 - ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ (0) | 2025.04.10 |
[Silver IV] 2331 - ๋ฐ๋ณต์์ด (0) | 2025.04.10 |
[Silver III] 10451 - ์์ด ์ฌ์ดํด (0) | 2025.04.09 |