백준 문제 풀이/DFS, BFS

2178 미로탐색 (python)

한사공사 2024. 7. 9. 18:07

문제

 

코드

import sys
from collections import deque

input = sys.stdin.readline

n, m  = map(int, input().split())

graph = []
for _ in range(n):
    graph.append(list(map(int, input().rstrip())))

dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]

def BFS(x, y):
    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 0 <= nx < n and 0 <= ny < m and graph[nx][ny] == 1:
                queue.append((nx, ny))
                graph[nx][ny] = graph[x][y] + 1
   
    return graph[n-1][m-1]

print(BFS(0, 0))

 

기본 BFS 문제로 쉽게 해결했다.

'백준 문제 풀이 > DFS, BFS' 카테고리의 다른 글

2606 바이러스 (python)  (0) 2024.07.10
1697 숨바꼭질 (python)  (1) 2024.07.08