백준, 연결 요소 개수, 11724, 파이썬

2024. 9. 16. 02:42ETC/Algorithm

[유형]

DFS

 

[문제링크]

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

 

[요약]

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

 

[문제풀이]

백준 온라인 저지의 기본 recursionlimit은 1000이다.
sys.setrecursionlimit()을 지정해주지 않으면 재귀 호출 시 런타임 에러가 발생한다.

visited[i]==0인 노드가 없어질 때까지 DFS를 수행하면서 answer+=1

import sys
sys.setrecursionlimit(10**7)
def input():
    return sys.stdin.readline().rstrip()

def dfs(graph,visited,v):
    visited[v] = 1
    for i in graph[v]:
        if not visited[i]:
            dfs(graph,visited,i)


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

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

for i in range(1,n+1):
    if not visited[i]:
        dfs(graph,visited,i)
        answer += 1
print(answer)

'ETC > Algorithm' 카테고리의 다른 글

백준, 숨바꼭질, 1697, 파이썬  (0) 2024.09.21
백준, 단지번호붙이기, 2667, 파이썬  (0) 2024.09.20
백준, 바이러스, 2606, 파이썬  (0) 2024.09.16
백준, 저울, 2473, 파이썬  (1) 2024.09.12
백준, 단어 수학, 1339  (1) 2024.09.12