게임맵 최단거리 - level2
2023. 1. 6. 11:38ㆍ코딩 테스트 준비
728x90
반응형
from collections import deque
def solution(maps):
def bfs(y, x):
q = deque()
q.append((y,x))
maps[y][x] = 2
while q:
y,x = q.popleft()
for dx,dy in d:
Y, X = y + dy, x + dx
if 0<=Y<len(maps) and 0<=X<len(maps[0]) and maps[Y][X] == 1:
maps[Y][X] = maps[y][x] + 1
q.append((Y,X))
d = [(1,0),(-1,0),(0,1),(0,-1)]
bfs(0,0)
if maps[-1][-1] == 1:
return -1
return maps[-1][-1] - 1
최단거리를 구하는 bfs 문제는 결국 대부분 동일하다. 범위와 이동반경만 신경쓰면 풀 수 있다.
728x90
반응형
'코딩 테스트 준비' 카테고리의 다른 글
가장 긴 감소하는 부분 순열 – 실버2 (0) | 2023.01.06 |
---|---|
계단 오르기 – 실버3 (0) | 2023.01.06 |
개인적인 DP 문제 풀이법 정리 (0) | 2023.01.05 |
2xn 타일링 - 실버 3 (0) | 2023.01.05 |
1로 만들기 - 실버 3 (0) | 2023.01.05 |