BOJ(백준) 1012번 유기농 배추 파이썬
2021. 3. 19. 15:10ㆍ개인 공부 공간/Algorithm
1012번: 유기농 배추
차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에
www.acmicpc.net
코드
import sys
r=sys.stdin.readline
T=int(r())
dx = [1,-1,0,0]
dy = [0,0,1,-1]
for _ in range(T):
M,N,K = map(int,r().split())
field =[[0] * M for _ in range(N)]
q = []
worm = 0
for _ in range(K):
X,Y = map(int,r().split())
field[Y][X] = 1
for y in range(N):
for x in range(M):
if field[y][x]:
q.append((x,y))
worm += 1
while q:
temp = q[0]
q = q[1:]
if field[temp[1]][temp[0]]:
field[temp[1]][temp[0]] = 0
for i in range(4):
new_x = temp[0] + dx[i]
new_y = temp[1] + dy[i]
if 0 <= new_x < M and 0 <= new_y < N and field[new_y][new_x]:
q.append((new_x,new_y))
print(worm)
해설
[2667번] 단지번호붙이기 풀이 방법과 매우 동일하게 풀이하였다. 다만 입력을 받는 부분에서 차이고 있고 이번 문제에서는 방문여부를 확인할 check
2차원 배열을 따로 생성하지 않고 기존 field
2차원 배열내에서 방문한 지역을 1에서 0으로 변경하여 표시하였다.
결과
'개인 공부 공간 > Algorithm' 카테고리의 다른 글
BOJ(백준) 2178번 미로 탐색 파이썬 (0) | 2021.03.22 |
---|---|
BOJ(백준) 1931번 회의실 배정 파이썬 (0) | 2021.03.22 |
BOJ(백준) [2667번] 단지번호붙이기 파이썬 (0) | 2021.03.19 |
BOJ(백준) 2606번 바이러스 파이썬 (0) | 2021.03.19 |
BOJ(백준) 1260번 DFS와 BFS 파이썬 (0) | 2021.03.19 |