幅優先探査の勉強

https://udomomo.hatenablog.com/entry/2018/04/16/215915

from collections import deque

def bfs(maze, visited, sy, sx, gy, gx):
    queue = deque(sy, sx)#手数
    visited[sy][sx] = 0
    while queue:
        y, x = queue.popleft()#キューの一番左を取り出す
        if [y, x] == [gy, gx]:
            return visited[y][x]
        for j, k in ([1, 0], [-1, 0], [0, 1], [0, -1]):
            new_y, new_x = y+j, x+k
            if maze[new_y][new_x] == "." and \#'/'改行できる
                visited[new_y][new_x] == -1:
                visited[new_y][new_x] = visited[y][x] + 1
                queue.append([new_y, new_x])

if __name__ == "__main__":#importで実行されないようにするため
    R, C = map(int, input().split())
    sy, sx = map(int, input().split())
    gy, gx = map(int, input().split())
    sy, sx, gy, gx = sy-1, sx-1, gy-1, gx-1

    maze = [input() for i in range(R)]
    visited = [[-1]*C for j in range(R)]
    print(bfs(maze, visited, sy, sx, gy, gx))