그래프탐색 BFS | 프로그래머스 고득점kit 게임 맵 최단거리 | Python

Table of Contents


프로그래머스 고득점kit 게임 맵 최단거리 | Python

📌 프로그래머스 고득점kit 게임 맵 최단거리 문제 바로가기


🔎 문제 설명

💚 Level 2

- 난이도 ★☆☆☆
- 그래프탐색 BFS

BFS를 구현할 수만 있다면 쉽게 풀 수 있는 문제!

최단거리를 구하는 일반적인 방법 중 하나로 출발지에서 목적지까지 1 를 더해가며 마지막 목적지의 거리를 구하는 방법이 있다. 이 문제는 그렇게 풀었으며, 목적지까지 가지 못하는 경우를 고려하면서 코드를 작성했다.



💻 내 코드

from collections import deque
def solution(maps):
    answer = 0
    n = len(maps)
    m = len(maps[0])
    
    def bfs():
        dx = [0,0,1,-1]
        dy = [1,-1,0,0]
        queue = deque([(0,0)])
        while queue:
            x, y = queue.popleft()
            if (x,y) == (n-1,m-1):
                return maps[n-1][m-1]
            for i in range(4):
                nx = x+dx[i]
                ny = y+dy[i]
                if 0<=nx<n and 0<=ny<m:
                    if maps[nx][ny] == 1:
                        maps[nx][ny] = maps[x][y]+1
                        queue.append((nx,ny))
        # 목적지까지 가지 못한 경우
        return -1
    answer = bfs()
    return answer




 


💙 You need to log in to GitHub to write comments. 💙
If you can't see comments, please refresh page(F5).