https://www.acmicpc.net/problem/2178
풀이
bfs를 적용해서 문제를 풀어주었다.
# 2178번 미로탐색
from collections import deque
import sys
input = sys.stdin.readline
dxy= ([1,0],[0,1],[-1,0],[0,-1])
n, m = map(int, input().split())
graph = []
for _ in range(n):
graph.append(list(map(int, input().rstrip())))
def bfs(n, m):
queue = deque()
queue.append((0,0))
while queue:
x, y = queue.popleft()
if (x, y) == (m-1, n-1):
return graph[n-1][m-1]
for dx, dy in dxy:
nx = x + dx
ny = y + dy
if 0 <= nx < m and 0 <= ny < n and graph[ny][nx] == 1:
graph[ny][nx] = graph[y][x] + 1
queue.append((nx, ny))
print(bfs(n, m))
출력결과
'백준 > DFS&BFS' 카테고리의 다른 글
[백준] 7576번 토마토 - 파이썬 (0) | 2022.08.16 |
---|---|
[백준] 10026번 적록색약 - 파이썬 (0) | 2022.07.18 |
[백준] 15650번 N과 M (2) - 파이썬 (0) | 2022.03.03 |
[백준] 15649번 N과 M (1) - 파이썬 (0) | 2022.03.03 |
[백준] 13913번 숨바꼭질 4 - 파이썬 (0) | 2022.02.18 |