문제풀이/프로그래머스

[프로그래머스] - 게임 맵 최단거리

얄루몬 2022. 8. 9. 13:54

from collections import deque

def solution(maps):
    answer = 0
    dx = [0,0,-1,1]
    dy = [1,-1,0,0]
    
    n = len(maps[0]) #가로
    m = len(maps) #세로
    dist = [[-1]*n for _ in range(m)]

    q = deque()
    q.append((0,0))
    dist[0][0] = 1
    
    while q:
        x,y = q.popleft()
        for i in range(4):
            nx = dx[i] + x
            ny = dy[i] + y
            if 0<=nx<m and 0<=ny<n and maps[nx][ny] == 1 and dist[nx][ny] == -1:
                dist[nx][ny] = dist[x][y] + 1
                q.append((nx,ny))

    
    
    return dist[-1][-1]
  • 문제는 BFS를 사용해서 최단거리를 구하는 문제이다.
  • 쉽기 때문에 이 문제는 가로 세로만 주의해서 풀면 된다.