[백준] 유기농 배추 (1012번) - DFS

YEAh·2021년 5월 14일
0
post-thumbnail

🔗 문제 링크

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


💻 코드

import sys
sys.setrecursionlimit(10000)

def dfs(x, y):
    if x < 0 or x >= M or y < 0 or y >= N:
        return False
    if graph[y][x] == 1:
        graph[y][x] = 0
        dfs(x - 1, y)
        dfs(x + 1, y)
        dfs(x, y -1)
        dfs(x, y + 1)
        return True
    return False

T = int(input())

for _ in range(T):
    M, N, K = map(int, input().split())

    graph = [[0] * M for i in range(N)]

    for _ in range(K):
        x, y = map(int, input().split())
        graph[y][x] = 1

    result = 0      
    for i in range(N):
        for j in range(M):
            if dfs(j, i) == True:
                result += 1
    print(result)

📝 정리

재귀함수로 인해 런타임 에러(Recursion Error)가 발생하면 최대 재귀한도 깊이를 설정하여 에러를 해결할 수 있다.

import sys
sys.setrecursionlimit(10000)
profile
End up being.

0개의 댓글