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를 사용해서 최단거리를 구하는 문제이다.
- 쉽기 때문에 이 문제는 가로 세로만 주의해서 풀면 된다.
'문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] - 추억 점수(java) (0) | 2023.03.31 |
---|---|
[프로그래머스][조합] - 메뉴 리뉴얼 (0) | 2022.08.11 |
[프로그래머스] - 문자열 다루기 기본 (0) | 2022.08.09 |
[프로그래머스] - 문자열 내 마음대로 정렬하기 (0) | 2022.08.09 |
[프로그래머스] - 정수 제곱근 판별 (0) | 2022.08.06 |