본문 바로가기
Beakjoon&프로그래머스/파이썬

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

by 현장 2022. 1. 10.

-코드

from collections import deque
from sys import stdin


def bfs(start):
    queue = deque([start])
    visited[start] = True
    while queue:
        start = queue.popleft()
        for i in range(1, n + 1):
            if not visited[i] and graph[start][i] == 1:
                queue.append(i)
                visited[i] = True


n, m = map(int, stdin.readline().split())
graph = [[0] * (n + 1) for _ in range(n + 1)]
visited = [False] * (n + 1)
for _ in range(m):
    u, v = map(int, stdin.readline().split())
    graph[u][v] = 1
    graph[v][u] = 1
c = 0
for j in range(1, n + 1):
    if not visited[j]:
        bfs(j)
        c += 1
print(c)

전에 풀었던 bfs, dfs문제와 비슷해서 풀어보았습니다. 하지만 아직 이 분야에 대해서 익숙하지가 않아서 시간이 많이 걸리고 쉬운 부분에서 헤매서 더 많이 풀어봐야겠다고 생각을 했습니다.