백준 2178 - 미로 탐색 (파이썬)

Updated:

Answer

from sys import stdin
from collections import deque

input = stdin.readline

def bfs(x, y):
    global count
    queue = deque([(x, y)])

    while queue:
        x, y = queue.popleft()

        for dx, dy in (0, 1), (0, -1), (1, 0), (-1, 0):
            nx = x + dx
            ny = y + dy

            if nx < 0 or nx >= N or ny < 0 or ny >= M:
                continue

            if matrix[nx][ny] == 1:
                queue.append((nx, ny))
                matrix[nx][ny] = matrix[x][y] + 1

    return matrix[N - 1][M - 1]

N, M = map(int, input().split())
matrix = [list(map(int, input().replace('\n', ''))) for _ in range(N)]

print(bfs(0, 0))

Categories:

Updated: