[ 2023-08-04 ๐ŸชTIL ]

Burkeyยท2023๋…„ 8์›” 4์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
136/157

๋ฐฑ์ค€ 1012๋ฒˆ ํŒŒ์ด์ฌ


๋ฌธ์ œ


์ฝ”๋“œ

import sys
from collections import deque
input = sys.stdin.readline

t = int(input())
result = []

for _ in range(t):
  m, n, k = map(int, input().split())
  feild = [[0] * m for _ in range(n)]
  visited = [[0] * m for _ in range(n)]
  bug = 0
  for _ in range(k):
    x, y = map(int, input().split())
    feild[y][x] = 1 # ๋ฐฐ์ถ” ์‹ฌ๊ธฐ
  
  for i in range(n):
    for j in range(m):
      if (not visited[i][j]) and (feild[i][j] == 1):
      	# BFS
        q = deque([(i, j)])
        visited[i][j] = True
        bug += 1 # ํ•ด๋‹น ์œ„์น˜์— ์ง€๋ ์ด ์‹ฌ๊ธฐ
        
        while q:
          ci, cj = q.popleft()
          
          for mi, mj in [(1,0), (-1, 0), (0, 1), (0, -1)]: # ๋ฐฐ์ถ”๊ฐ€ ์ƒํ•˜์ขŒ์šฐ์— ์žˆ๋Š”์ง€ ํ™•์ธ
            xi, xj = (ci + mi), (cj + mj)
            if 0<=xi<n and 0<=xj<m : 
              if (feild[xi][xj] == 1) and (not visited[xi][xj]):
                q.append((xi, xj))
                visited[xi][xj] = True
        
  result.append(bug)

for b in result:
  print(b)
profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€