Search
Duplicate

게임 맵 최단거리

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

from collections import deque def is_valid(r, c, maps): return (0 <= r < len(maps)) and (0 <= c < len(maps[0])) def bfs(r, c, maps): visited = set() q = deque() q.append((r, c, 1)) visited.add((r, c)) while len(q) > 0: r, c, d = q.popleft() if r == len(maps) - 1 and c == len(maps[0]) - 1: return d for dr, dc in [[0, 1], [1, 0], [0, -1], [-1, 0]]: if is_valid(r+dr, c+dc, maps) and (r+dr, c+dc) not in visited and maps[r+dr][c+dc] == 1: visited.add((r+dr, c+dc)) q.append((r+dr, c+dc, d+1)) return -1 def solution(maps): return bfs(0, 0, maps)
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges