문제 링크
https://www.acmicpc.net/problem/1012
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
문제 풀이
from collections import deque
def bfs(x, y):
queue = deque()
queue.append((x, y))
while queue:
now_x, now_y = queue.popleft()
for dir in range(4):
next_x, next_y = now_x + dx[dir], now_y + dy[dir]
if 0 <= next_x < n and 0 <= next_y < m and graph[next_x][next_y]:
graph[next_x][next_y] = 0
queue.append((next_x, next_y))
return
t = int(input())
for _ in range(t):
# m : 가로, n : 세로, k : 배추가 심어진 위치 개수
m, n, k = map(int, input().split())
graph = [[0] * m for _ in range(n)]
result = 0
dx = [0, 0, 1, -1]
dy = [1, -1, 0, 0]
for _ in range(k):
x, y = map(int, input().split())
graph[y][x] = 1
for i in range(n):
for j in range(m):
if graph[i][j] == 1:
bfs(i, j)
result += 1
print(result)
배추가 심어진 위치에 대해 이차원 배열 값을 1로 초기화해주고,
해당 위치를 기준으로 BFS를 진행하여 그 기준 위치 근처의 배추들을 0으로 만들어줍니다.
'Algorithm > BOJ' 카테고리의 다른 글
[백준] 1715 카드 정렬하기 (파이썬 python) (0) | 2024.02.20 |
---|---|
[백준] 1202 보석 도둑 (파이썬 python) (1) | 2024.02.20 |
[백준] 12851 숨바꼭질 2 (파이썬 python) (0) | 2024.02.14 |
[백준] 10830 행렬 제곱 (파이썬 python) (1) | 2024.02.13 |
[백준] 1865 웜홀 (파이썬 python) (0) | 2024.02.13 |