게임 맵 최단거리

Tiffany ·2024년 3월 19일
0

Programmers

목록 보기
10/15

from collections import deque

def solution(maps):
    n = len(maps)
    m = len(maps[0])
    
    dx = [-1, 1, 0, 0]  
    dy = [0, 0, -1, 1]

    queue = deque([(0, 0, 1)])  
    visited = set()  

    while queue:
        x, y, count = queue.popleft()
        if x == n - 1 and y == m - 1:  
            return count
        for i in range(4):  
            nx, ny = x + dx[i], y + dy[i]
            if 0 <= nx < n and 0 <= ny < m and maps[nx][ny] == 1 and (nx, ny) not in visited:  
                visited.add((nx, ny))  
                queue.append((nx, ny, count + 1))  

    return -1  
profile
Love what you do and don't quit.

0개의 댓글