DHistory
[Baekjoon] DFS/BFS - 1012 유기농 배추 본문
문제
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
풀이
import sys
from collections import deque
t = int(sys.stdin.readline().rstrip())
dx = [-1, 0, 1, 0]
dy = [0, -1, 0, 1]
def solution(graph, x, y, n, m):
if graph[x][y] in [0, -1]:
return False
queue = deque([(x, y)])
graph[x][y] = -1
while queue:
x, y = queue.popleft()
for i in range(len(dx)):
nx = x + dx[i]
ny = y + dy[i]
if not (0 <= nx < n and 0 <= ny < m):
continue
if graph[nx][ny] in [0, -1]:
continue
graph[nx][ny] = -1
queue.append([nx, ny])
return True
for _ in range(t):
n, m, k = map(int, sys.stdin.readline().rstrip().split())
graph = [[0 for _ in range(m)] for _ in range(n)]
for _ in range(k):
a, b = map(int, sys.stdin.readline().rstrip().split())
graph[a][b] = 1
answer = 0
for i in range(n):
for j in range(m):
if solution(graph, i, j, n, m):
answer += 1
print(answer)
채점 결과

'Computer Science > Algorithm' 카테고리의 다른 글
[Baekjoon] DFS/BFS - 4963 섬의 개수 (0) | 2023.09.04 |
---|---|
[Baekjoon] DFS/BFS - 11724 연결 요소의 개수 (0) | 2023.09.04 |
[Baekjoon] DFS/BFS - 1260 DFS와 BFS (0) | 2023.09.04 |
[Baekjoon] DFS/BFS - 2606 바이러스 (0) | 2023.09.04 |
[Baekjoon] DFS/BFS - 16173 점프왕 쩰리 (Small) (0) | 2023.09.04 |