본문 바로가기
Algorithm

[BAEKJOON] 2178번: 미로탐색

by Y06 2021. 10. 26.

2178번 문제이다.

사진을 누르면 문제로 이동한다.

문제는 Python언어로 구현하였다.

 

from collections import deque

N, M = map(int, input().split())

graph = []

for _ in range(N):
    graph.append(list(map(int, input())))

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

    # deque 생성
    queue = deque()
    queue.append((x, y))

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

        for i in range(4):
            nx = x + dx[i]
            ny = y + dy[i]

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

            if graph[nx][ny] == 0:
                continue

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

    return graph[N - 1][M - 1]

print(bfs(0, 0))

'Algorithm' 카테고리의 다른 글

[BAEKJOON] 13977번: 이항 계수와 쿼리  (0) 2021.11.03
[BAEKJOON] 11401번: 이항 계수 3  (0) 2021.11.03
[BAEKJOON] 1260번: DFS와 BFS  (0) 2021.10.26
[BAEKJOON] 10828번: 스택  (0) 2021.09.30
[BAEKJOON] 1874번: 스택 수열  (0) 2021.09.30