문제풀이/DFS & BFS

@[파이썬] [BFS] 백준 2178 미로 탐색

승무_ 2022. 12. 26. 11:50

문제

https://www.acmicpc.net/problem/2178

 

2178번: 미로 탐색

첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.

www.acmicpc.net

코드

from collections import deque
queue=deque()

n,m=map(int, input().split())
graph=[list(map(int, list(input().rstrip()))) for _ in range(n)]
visited=[[0]*m for _ in range(n)]

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

queue.append([0,0])
while queue:
    x,y=queue.popleft()

    if x==n-1 and y==m-1:
        print(visited[x][y]+1)
        exit(0)

    for i in range(4):
        nx=x+dx[i]
        ny=y+dy[i]
        if 0<=nx<n and 0<=ny<m:
            if visited[nx][ny]==0 and graph[nx][ny]==1:
                visited[nx][ny]=visited[x][y]+1
                queue.append([nx,ny])