백준 풀이
백준 1012번 파이썬 bfs
ag2개발자
2022. 8. 28. 04:49
from collections import deque
t=int(input())
dx=[1,-1,0,0]
dy=[0,0,1,-1]
def bfs(graph,x,y):
graph[x][y]=0
queue=deque()
queue.append((x,y))
while queue:
x,y = queue.popleft()
for i in range(4):
nx=x+dx[i]
ny=y+dy[i]
if nx>=n or nx<0 or ny<0 or ny>=m:
continue
if graph[nx][ny]==1:
queue.append((nx,ny))
graph[nx][ny]=0
return
for _ in range(t):
cnt=0
n,m,num=map(int,input().split())
graph=[[0]*m for x in range(n)]
for i in range(num):
x,y=map(int,input().split())
graph[x][y]=1
for i in range(n):
for j in range(m):
if graph[i][j]:
bfs(graph,i,j)
cnt+=1
print(cnt)