
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
1.
visited = [[False] * M for _ in range(N)]
visited[0][0] = True
visited변수는 방문할경우 False 가 True로 되나요?
2.
while queue:
x, y, dist = queue.popleft()
if x == N-1 and y == M-1:
return dist
for dx, dy in directions:
nx, ny = x + dx, y + dy
if 0 <= nx < N and 0 <= ny < M and not visited[nx][ny] and maze[nx][ny] == '1':
visited[nx][ny] = True
queue.append((nx, ny, dist + 1))
return -1
ㅇ여기서 return -1 은 상하좌우로 이동후 다시 되돌아가는것을 의미하나요?
작성한 코드 및 에러 메세지
from collections import deque
def bfs_maze_escape(maze):
N, M = len(maze), len(maze[0])
visited = [[False] * M for _ in range(N)]
queue = deque([(0, 0, 1)])
visited[0][0] = True
directions = [(-1,0),(1,0),(0,-1),(0,1)]
while queue:
x, y, dist = queue.popleft()
if x == N-1 and y == M-1:
return dist
for dx, dy in directions:
nx, ny = x + dx, y + dy
if 0 <= nx < N and 0 <= ny < M and not visited[nx][ny] and maze[nx][ny] == '1':
visited[nx][ny] = True
queue.append((nx, ny, dist + 1))
return -1
maze = [
"11101",
"10101",
"10101",
"11111"
]
maze = [list(row) for row in maze]
print(bfs_maze_escape(maze))
