- 문제 : 연결 요소의 개수
- 난이도 : 실버 2
- 언어 : Python
- 문제 링크 : https://www.acmicpc.net/problem/11724
def dfs(j):
for k in arr[j]:
if visited[k] == 0:
visited[k] = 1
dfs(k)
N, M = map(int, input().split())
arr = [[] for _ in range(N+1)]
visited = [0] * (N+1)
for _ in range(M):
n1, n2 = map(int, input().split())
arr[n1].append(n2)
arr[n2].append(n1)
cnt = 0
for i in range(1, N+1):
if visited[i] == 0:
dfs(i)
cnt+=1
print(cnt)
dfs를 이용한 풀이. 각 노드를 그래프 형태로 만들고, 방문 체크하면서 순회.
'BOJ' 카테고리의 다른 글
백준 15650. N과 M (2) [Python] (0) | 2022.06.03 |
---|---|
백준 15649. N과 M (1) [Python] (0) | 2022.06.03 |
백준 1302. 베스트셀러 [Python] (0) | 2022.06.02 |
백준 1449. 수리공 항승 [Python] (0) | 2022.05.30 |
백준 11047. 동전 0 [Python] (0) | 2022.05.23 |