반응형
import sys
sys.setrecursionlimit(10000) #재귀한도 풀어주기
def dfs(x,y):
dx = [1,-1,0,0]
dy = [0,0,1,-1]
for i in range(4):
nx = x+dx[i]
ny = y+dy[i]
if (0 <= nx < N) and (0 <= ny < M):
if matrix[nx][ny] == 1:
matrix[nx][ny] = -1
dfs(nx,ny)
T=int(input())
for _ in range(T):
M,N,K = map(int,input().split())
matrix = [[0]*M for _ in range(N)]
cnt = 0
for _ in range(K):
m,n = map(int,input().split())
matrix[n][m] = 1
for i in range(N):
for j in range(M):
if matrix[i][j] == 1:
dfs(i,j)
cnt += 1
print(cnt)
반응형
'알고리즘 > dfs,bfs' 카테고리의 다른 글
[파이썬🐍] 백준 1325 : 효율적인 해킹 (0) | 2021.06.01 |
---|---|
[파이썬🐍] 백준 7562 : 나이트의 이동 (0) | 2021.05.31 |
[파이썬🐍] 백준 7576 : 토마토 (0) | 2021.05.29 |
[파이썬🐍] 백준 4963 : 섬의 개수 (0) | 2021.04.12 |
[파이썬🐍] 백준 2644 : 촌수계산 (0) | 2021.04.11 |
댓글