/ ALGORITHM

백준 - 미로 탐색(#2178)

백준 2178번

image-20230124164010747

from collections import deque

N,M = map(int,input().split())
maps = [list(map(int,list(input()))) for _ in range(N)]
visited = [[False]*M for _ in range(N)]

dx = [1,-1,0,0]
dy = [0,0,1,-1]

def bfs(i,j):
  visited[i][j]=True
  queue = deque([[i,j]])
  while queue:
    x,y = queue.popleft()
    
    for i in range(4):
      nx,ny=x+dx[i],y+dy[i]

      if nx<0 or ny<0 or nx>N-1 or ny>M-1:
        continue

      if maps[nx][ny]==1:
        if not visited[nx][ny]:
          visited[nx][ny]=True
          map[nx][ny]=maps[x][y]+1
          queue.append([nx,ny])

  return maps[N-1][M-1]

print(bfs(0,0))