개발/algorithm
[백준 1012번] 유기농 배추 - python
zzi_on2
2022. 2. 13. 20:12
문제 링크
https://www.acmicpc.net/problem/1012
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
풀이
- bfs로 풀이
from collections import deque
test = int(input())
dx = [ 1, -1, 0, 0 ]
dy = [ 0, 0, 1, -1 ]
def bfs(a,b):
# 0으로 지나간 곳임을 표시
graph[a][b] = 0
# 큐에 위치 삽입
q = deque()
q.append((a,b))
while q:
x,y = q.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
# 범위에 해당하고 배추가 심어져 있는 곳이면
if 0<= nx < n and 0 <= ny < m and graph[nx][ny] == 1 :
# 0으로 표시
graph[nx][ny] = 0
q.append((nx,ny))
for _ in range(test):
n, m, k = map(int,input().split())
# 배추 밭
graph =[[0] * m for _ in range(n)]
# 배추의 위치 표시
for _ in range(k):
a, b = map(int,input().split())
graph[a][b] = 1
# 흰지렁이 수
cnt = 0
for i in range(n):
for j in range(m):
# 배추가 심어져 있는 곳이면 bfs 실행 후 cnt + 1
if graph[i][j] == 1:
bfs(i,j)
cnt += 1
print(cnt)