728x90
https://programmers.co.kr/learn/courses/30/lessons/1844
from collections import deque
def solution(maps):
answer = -1
n, m = len(maps), len(maps[0])
s, e = (0,0), (n - 1, m - 1)
visit = [[0] * m for _ in range(n)]
dx = [1,0,-1,0]
dy = [0,1,0,-1]
q = deque()
q.append(s)
while q:
x, y = q.popleft()
if (x, y) == e:
return visit[x][y] + 1
for i in range(4):
xx = x + dx[i]
yy = y + dy[i]
if 0 > xx or n <= xx or 0 > yy or m <= yy: continue
if not maps[xx][yy]: continue
if visit[xx][yy]: continue
visit[xx][yy] = visit[x][y] + 1
q.append((xx,yy))
return answer
최단 거리를 구해야하므로 BFS(너비 우선 탐색)을 사용하여 풀었다.
'STUDY > Algorithm' 카테고리의 다른 글
[프로그래머스] 배달, Summer/Winter Coding(~2018), python (0) | 2021.06.23 |
---|---|
[프로그래머스] 뉴스 클러스터링, 2018 KAKAO BLIND RECRUITMENT, python (0) | 2021.06.23 |
[프로그래머스] 오픈채팅방, 2019 KAKAO BLIND RECRUITMENT, python (0) | 2021.06.21 |
[프로그래머스] 카카오프렌즈 컬러링북, C++ (0) | 2021.06.21 |
[백준] 2671 잠수함 식별 python (3) | 2021.05.30 |