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

Eunding·2024년 11월 15일

algorithm

목록 보기
36/110

11724번 연결 요소의 개수

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

아이디어

입력받은 간선들을 양방향 그래프로 만들어서 그 노드에 방문했는지 체크하면 된다.

한 번 틀렸는데 틀린 이유는 처음에 양방향 그래프가 아닌 단방향 그래프로 만들어서 틀렸다.
반례)
3 2
2 1
3 2 answer = 1


코드

from collections import deque

def BFS():
    queue = deque([])
    answer = 0

    for num in range(1, n+1) :
        if visited[num] : continue
        answer += 1
        queue.append(num)
        while queue:
            a = queue.popleft()
            visited[a] = True
            for i in graph[a]:
                if visited[i]: continue
                visited[i] = True
                queue.append(i)

    print(answer)


n, m = map(int, input().split())
graph = [[] for _ in range(n+1)]
visited = [False] * (n+1)
visited[0] = True

for _ in range(m):
    a, b = map(int, input().split())
    graph[a].append(b) # 양방향 그래프
    graph[b].append(a)

BFS()

0개의 댓글