Algorithm/📊 Problem Solving

[백준/BOJ] 11724 - 연결 요소의 개수

posted by sangmin

11724 - 연결 요소의 개수

문제

방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오.

코드

from collections import deque

def bfs(n):
    q = deque()
    q.append(n)
    visited[n] = True

    while q:
        v = q.popleft()

        for i in graph[v]:
            if not visited[i]:
                q.append(i)
                visited[i] = True


N, M = map(int, input().split())

graph = [[] for _ in range(N+1)]
visited = [False] * (N+1)

for _ in range(M):
    a, b = map(int, input().split())
    graph[a].append(b)
    graph[b].append(a)

count = 0
for i in range(1, N+1):
    if not visited[i]:
        bfs(i)
        count += 1

print(count)

한마디

무방향 그래프이기 때문에 양쪽 정점을 모두 리스트에 넣어줘야 한다.

 

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

 

'Algorithm > 📊 Problem Solving' 카테고리의 다른 글

[백준/BOJ] 17141 - 연구소 2  (0) 2021.01.24
[백준/BOJ] 14502 - 연구소  (0) 2021.01.23
[백준/BOJ] 1012 - 유기농 배추  (0) 2021.01.23
[백준/BOJ] 2606 - 바이러스  (0) 2021.01.23
[백준/BOJ] 7576 - 토마토  (0) 2021.01.23