코딩테스트

[백준] 11724 | 연결 요소의 개수 [파이썬/python]

사용할수없는닉네임이왜이렇게많지ㅠㅠ 2025. 4. 16. 23:20
728x90

문제

link: https://www.acmicpc.net/problem/11724

주어진 방향 없는 그래프에서 연결 요소의 개수를 세는 문제이다.

 

접근

BFS로 그래프를 순회하며 연결 요소의 개수를 세도록 구현했다. (DFS를 사용해도 문제를 풀 수 있지만 그래프를 순회하는 데 한 가지 방법만 필요하므로 임의로 택했다.)

 

코드

import sys
from collections import deque
input = sys.stdin.readline

N, M = map(int, input().split())
graphs = [[] for _ in range(N+1)]
s = set(i for i in range(1, N+1))
q = deque()
ans = 0

for _ in range(M):
    u, v = map(int, input().split())
    graphs[u].append(v)
    graphs[v].append(u)
    
while s:
    q.append(s.pop())
    while q:
        for i in graphs[q.popleft()]:
            if i in s:
                q.append(i)
                s.remove(i)
    ans += 1
    
print(ans)
728x90