본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬] 2178번 미로 탐색

by 현장 2022. 5. 26.

-Code

def bfs(x, y):
    dx = [0, 0, 1, -1]
    dy = [1, -1, 0, 0]

    queue = [(x, y)]
    while queue:
        a, b = queue.pop(0)
        for i in range(4):
            nx = a + dx[i]
            ny = b + dy[i]

            if 0 <= nx < n and 0 <= ny < m and Map[nx][ny] == 1:
                Map[nx][ny] = Map[a][b] + 1
                queue.append((nx, ny))

    return Map[-1][-1]


n, m = map(int, input().split())
Map = [list(map(int, input())) for _ in range(n)]
print(bfs(0, 0))

 

예전에 했던 BFS로 풀면 되는데 이상한 방법으로 풀려해서 답이 이상하게 나왔고 결국 찾아보다가 예전 방법으로 풀면 되는걸 아는 시간이 좀 걸렸습니다.