from collections import deque
import copy
def bfs():
queue=deque()
gr=copy.deepcopy(g)
global res
for i in range(n):
for j in range(m):
if gr[i][j]==2:
queue.append((i,j))
while queue:
x,y=queue.popleft()
for i in range(4):
nx=x+dx[i]
ny=y+dy[i]
if nx < 0 or nx >= n or ny < 0 or ny >= m:
continue
if gr[nx][ny]==0:
gr[nx][ny]=2
queue.append((nx,ny))
cnt=0
for e in range(n):
for f in range(m):
if gr[e][f]==0:
cnt+=1
res=max(res,cnt)
def check(num):
if num==3:
bfs()
return
for p in range(n):
for q in range(m):
if g[p][q]==0:
g[p][q]=1
check(num+1)
g[p][q]=0
n,m=map(int,input().split())
res=0
g=[]
dx=[1,-1,0,0]
dy=[0,0,1,-1]
for i in range(n):
g.append(list(map(int,input().split())))
check(0)
print(res)
'백준 풀이' 카테고리의 다른 글
백준 1011번 파이썬 (0) | 2022.08.31 |
---|---|
백준 1654번 파이썬 (이분탐색) (0) | 2022.08.31 |
백준 9020번 파이썬 소수찾기 (0) | 2022.08.31 |
백준 9663번 파이썬 (백트래킹 기초) (0) | 2022.08.30 |
백준 4949번 파이썬 (0) | 2022.08.30 |