from collections import deque
n, m = map(int,input().split())
board=[]
for i in range(n):
board.append(list(map(int,input())))
# 이동량
dx = [-1,1,0,0]
dy = [0,0,-1,1]
arr = deque()
arr.append([0,0])
while arr :
# 현재 위치
px, py = arr.popleft()
# 좌표 이동
for i in range(len(dx)):
nx = px+dx[i]
ny = py+dy[i]
# board를 벗어나면 continue
if nx>n-1 or ny>m-1 or nx<0 or ny<0 :
continue
# 이동 가능한 좌표라면
if board[nx][ny]==1:
# target 좌표로 선정
arr.append((nx,ny))
# 좌표 값의 값을 가중하며 거리 계산
board[nx][ny] = board[px][py]+1 # 직전 노드+1
# 가중된 거리에 따라 마지막 좌표 return
print(board[n-1][m-1])
댓글남기기