본문 바로가기
알고리즘/dfs,bfs

[파이썬🐍] 백준 1012 : 유기농 배추

by 코딩개미뚠뚠 2021. 5. 30.
반응형
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)



반응형

댓글