문제풀이/백준(Boj) 문제풀이
[백준][자료구조/힙] 2638. 치즈(파이썬/Python)
얄루몬
2022. 1. 28. 14:33
from collections import deque
n,m=map(int,input().split())
graph=[list(map(int, input().split())) for i in range(n)]
c= 0
dx=[-1, 0, 1, 0]
dy=[0, 1, 0, -1]
def bfs():
q=deque()
q.append([0,0])
visited=[[-1]*m for i in range(n)]
visited[0][0] = 0
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:
if visited[nx][ny] == -1:
if graph[nx][ny] >= 1:
graph[nx][ny] += 1
else:
visited[nx][ny] = 0
q.append([nx,ny])
while True:
bfs()
flag = 0
for i in range(n):
for j in range(m):
if graph[i][j] >= 3:
graph[i][j] = 0
flag = 1
elif graph[i][j] == 2:
graph[i][j] = 1
if flag == 1:
c += 1
else:
break
print(c)
- 치즈가 있는 부분은 1부터 시작해서 2변 이상의 노출이 필요하니 3이상이 될 것
- 치즈가 없는 부분은 0부터라 3이하가 됨