BOJ

백준 11724. 연결 요소의 개수 [Python]

Hoo_Dev 2022. 6. 2. 19:54
 

11724번: 연결 요소의 개수

첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주

www.acmicpc.net

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