[백준] 미로 탐색 - 복습

문제

[백준] 미로 탐색

풀이

from collections import deque
from copy import deepcopy
N, M = map(int, input().split())
graph = [list(map(int, input())) for _ in range(N)]
visited = deepcopy(graph)

def bfs(start, graph):
    dx = [0, 1, 0, -1]
    dy = [1, 0, -1, 0]
    q = deque()
    q.append(start)
    answer = 10000
    while q:
        x, y, visited, ans = q.popleft()
        for i in range(4):
            mx = x + dx[i] 
            my = y + dy[i]

            if 0 <= mx < N and 0 <= my < M:
                if mx == N-1 and my == M-1:
                    return ans + 1
                if visited[mx][my] == 1:
                    visited[mx][my] = 0
                    ans += 1
                    q.append([mx, my, visited, ans])
                    ans -= 1
        
    return answer

visited[0][0] = 0
answer = 1
start = [0, 0, visited, answer]
print(bfs(start, graph))

태그: , ,

카테고리:

업데이트: