단지 세기? 와 그냥 똑같은 문제이다.
우선 런타임 에러 (RecursionError)가 계속 떠서 그부분이 좀 힘들엇다.
RecursionError는 재귀와 관련된 에러입니다. 가장 많이 발생하는 이유는 Python이 정한 최대 재귀 깊이보다 재귀의 깊이가 더 깊어질 때이라고 한다.
그렇기 때문에 파이썬에서 최대 재귀 깊이를 늘려줘야한다.
import sys
sys.setrecursionlimit(10000)
이걸 추가함으로 해결햇다
import sys
sys.setrecursionlimit(10000)
T = int(input())
count = []
for t in range(T):
m, n, k = map(int, input().split())
dx = [0, 0, -1, 1]
dy = [1, -1, 0, 0]
data = [[0] * m for _ in range(n)]
visited = [[0] * m for _ in range(n)]
result = 0
for i in range(k):
x, y = map(int, input().split())
data[y][x] = 1
def dfs(a, b):
visited[a][b] = 1
for i in range(4):
if n > a + dy[i] >= 0 and m > b + dx[i] >= 0:
if visited[a + dy[i]][b + dx[i]] == 0 and data[a + dy[i]][b + dx[i]] == 1:
visited[a + dy[i]][b + dx[i]] = 1
dfs(a + dy[i], b + dx[i])
for i in range(n):
for j in range(m):
if visited[i][j] == 0 and data[i][j] == 1:
dfs(i, j)
result += 1
count.append(result)
for i in range(len(count)):
print(count[i])