커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
미로 탈출 문제
[스킬업] 실무에 바로 쓰이는 알고리즘 by Python
3주차
북마크
양*연
댓글
1
추천
0
조회수
7
조회수
7
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


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))





취소
 공유
취소
댓글 0
댓글 알림
나의얼굴