백준

[백준] 1012번 유기농 배추 [Python]

YoonJuHan 2023. 7. 31. 18:04
t = int(input())

def bfs(k, l):
    global answer
    answer += 1

    zx, zy = [0, 0, 1, -1], [1, -1, 0, 0]
    Q = [[k, l]]
    ddang[k][l] = 0

    while Q:
        x, y = Q.pop(0)
        
        for i in range(4):
            nx, ny = x + zx[i], y + zy[i]
            
            if 0 <= nx < m and 0 <= ny < n and ddang[nx][ny] == 1:
                ddang[nx][ny] = 0
                Q.append([nx, ny])

for i in range(t):
    answer = 0
    n, m, k = map(int, input().split()) # 가로, 세로, 배추 개수
    ddang = [[0] * n for _ in range(m)]

    for j in range(k):
        x, y = map(int, input().split())
        ddang[y][x] = 1
    
    for k in range(len(ddang)):
        for l in range(len(ddang[0])):
            if ddang[k][l] == 1:
                bfs(k, l)

    print(answer)