https://programmers.co.kr/learn/courses/30/lessons/1844
전형적인 BFS 문제다
나의 풀이
from collections import deque
def solution(maps):
n,m = len(maps), len(maps[0])
visited = [[0]*m for _ in range(n)]
visited[0][0]=True
move = [(1,0),(-1,0),(0,1),(0,-1)]
answer = 1
queue = deque()
queue.append((0,0,answer))
while queue:
i, j, answer = queue.popleft()
for mov in move:
x, y = i + mov[0], j + mov[1]
if 0<= x <n and 0<= y <m:
if visited[x][y] ==True:
continue
if maps[x][y] == 1:
if x == n-1 and y == m-1 :
return answer+1
else:
visited[x][y] = True
queue.append((x,y,answer+1))
return -1
'Programming > Programmers' 카테고리의 다른 글
[프로그래머스] 순위 검색(Python) (0) | 2021.11.01 |
---|---|
[프로그래머스] 예상 대진표(Python) (0) | 2021.10.31 |
[프로그래머스] 거리두기 확인하기(Python) (0) | 2021.10.31 |
[프로그래머스] 뉴스 클러스터링(Python) (0) | 2021.10.30 |
[프로그래머스] 셔틀버스 (Python) (0) | 2021.10.30 |
댓글