본문 바로가기
알고리즘

[BOJ] 11724 연결 요소의 개수 - python

by saoh 2022. 3. 23.

백준 11724번 연결 요소의 개수 문제이다.

 

import sys
sys.setrecursionlimit(10000)

N, M = map(int,sys.stdin.readline().split())

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

def dfs(n):
    visited[n] = 1
    for i in range(1,N+1):
        if visited[i] == 0 and graph[n][i] == 1:
            dfs(i) 

for _ in range(M): 
    a, b = map(int, sys.stdin.readline().split()) 
    graph[a][b] = 1 
    graph[b][a] = 1 

count = 0
for _ in range(1,N+1):
    if visited[_] == 0:
        dfs(_)
        count += 1		# dfs 재귀에서 돌아온 경우 count 증가
        
print(count)

 

해당 문제에서는 재귀 횟수 제한을 증가시켜줘야한다.

그렇지 않으면 런타임 에러가 발생하는데, Python이 정한 최대 재귀 깊이보다 재귀의 깊이가 더 깊어지기 때문이다.

BOJ의 채점 서버에서 이 값은 1,000으로 되어있다.

'알고리즘' 카테고리의 다른 글

[BOJ] 1012 유기농 배추 - python  (0) 2022.03.27
[개념] Dijkstra(다익스트라) - python  (0) 2022.03.24
[BOJ] 13565 침투 - python  (0) 2022.03.23
[개념] BFS(Breadth-First Search) - python  (1) 2022.03.20
[개념] 힙 정렬 - python  (0) 2022.03.17