728x90
반응형
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
Python
import sys
from collections import deque
dx = [0,0,-1,1]
dy = [1,-1,0,0]
t = int(sys.stdin.readline())
for i in range(t):
m, n, k = map(int, sys.stdin.readline().split())
visit = [[0 for i in range(m)] for i in range(n)]
cabage = [[0 for i in range(m)] for i in range(n)]
for i in range(k):
x, y = map(int, sys.stdin.readline().split())
cabage[y][x] = 1
q = deque()
cnt = 0
for a in range(n):
for b in range(m):
if cabage[a][b] == 0 or visit[a][b] > 0:
continue
visit[a][b] = 1
q.append((a,b))
while len(q) != 0:
pos = q.popleft()
for i in range(4):
nx = pos[1] + dx[i]
ny = pos[0] + dy[i]
if 0<=nx<m and 0<=ny<n:
#print((ny,nx),end=" ")
if visit[ny][nx] == 0 and cabage[ny][nx]==1:
visit[ny][nx] = visit[pos[0]][pos[1]] + 1
q.append((ny,nx))
#print()
cnt+=1
#print(cnt, (b,a))
#for i in range(n):
# print(visit[i], cabage[i])
print(cnt)
입력되는 좌표가 배열의 특성과 반대로 입력되는 것에 주의하여 인덱스 접근
728x90
반응형
'Algorithm Problems' 카테고리의 다른 글
[백준] [Python] 2583번 영역 구하기 - BFS (0) | 2021.05.04 |
---|---|
[백준] [Python] 7569번 토마토(3차원) - BFS (0) | 2021.05.03 |
[백준] [Python] 1764번 듣보잡 - 정렬 (0) | 2021.05.01 |
[백준] [Python] 백트래킹 (0) | 2021.04.29 |
[백준] [Python] 1074번 Z - 재귀 (0) | 2021.04.29 |