Scroll indicator done
728x90

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


import sys

t = int(sys.stdin.readline())

dr = [1, -1, 0, 0]
dc = [0, 0, -1, 1]

for i in range(t):
    m, n, k = map(int, sys.stdin.readline().split())
    cabbage = [[0] * m for cb in range(n)]
    cnt = 0

    for j in range(k):
        c, r = map(int, sys.stdin.readline().split())
        cabbage[r][c] = 1

    for q in range(n):
        for w in range(m):
            if cabbage[q][w] == 1:
                queue = [[q, w]]
                while queue:
                    fr, fc = queue[0][0], queue[0][1]
                    del queue[0]
                    for x in range(4):
                        ddr = fr + dr[x]
                        ddc = fc + dc[x]
                        if 0 <= ddr < n and 0 <= ddc < m and cabbage[ddr][ddc] == 1:
                            cabbage[ddr][ddc] = 0
                            queue.append([ddr, ddc])

                cabbage[q][w] = 0
                cnt += 1
    print(cnt)
728x90

'BAEKJOON > Python' 카테고리의 다른 글

[B1018][체스판 다시 칠하기][python]  (0) 2021.07.01
[B1697][숨바꼭질][python]  (0) 2021.06.11
[B2098][외판원 순회(tsp)][python]  (0) 2021.06.07
[B18111][마인크래프트][python]  (0) 2021.06.07
[B1744][수 묶기][python]  (0) 2021.03.26