[Level2] 게임 맵 최단거리
1089 단어 DFS/BFSprogrammersDFS/BFS
🛠 문제
👩🏻💻 해결 방법
bfs를 사용해 쉽게 해결할 수 있는 문제였다
그러나 while문에서 조건을 구현해주는 과정이 조금 헷갈렸다
소스 코드
from collections import deque
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
def bfs(maps, i, j, n, m):
q = deque()
q.append((i, j))
while q:
x, y = q.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 > nx or nx >= n or 0 > ny or ny >= m:
continue
if maps[nx][ny] == 0:
continue
if maps[nx][ny] == 1:
maps[nx][ny] = maps[x][y] + 1
q.append((nx, ny))
def solution(maps):
answer = 0
n = len(maps)
m = len(maps[0])
bfs(maps, 0, 0, n, m)
if maps[n-1][m-1] == 1:
return -1
else:
return maps[n-1][m-1]
Author And Source
이 문제에 관하여([Level2] 게임 맵 최단거리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hyunnn/Level2-게임-맵-최단거리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)