https://school.programmers.co.kr/learn/courses/30/lessons/1844
전형적인 BFS 문제다
from collections import deque
def solution(maps):
answer = 0
col = len(maps)
row = len(maps[0])
queue = deque()
queue.append((0,0))
dx = [1,-1,0,0]
dy = [0,0,-1,1]
while queue:
x,y = queue.popleft()
for i in range(4):
nx = dx[i] + x
ny = dy[i] + y
if nx < col and nx >= 0 and ny < row and ny >= 0 and maps[nx][ny] == 1:
maps[nx][ny] = maps[x][y] + 1
queue.append((nx,ny))
return -1 if maps[len(maps) -1][len(maps[0]) - 1] == 1 else maps[len(maps) -1][len(maps[0]) - 1]
'알고리즘' 카테고리의 다른 글
프로그래머스) 성격 유형 검사-python (0) | 2023.01.09 |
---|---|
프로그래머스) 개인정보 수집 유효기간 -python (0) | 2023.01.08 |
프로그래머스)타겟 넘버 - python (0) | 2023.01.06 |
백준 1026) 보물 -python (0) | 2023.01.05 |
프로그래머스) 푸드 파이트 대회 -python (0) | 2023.01.03 |