728x90
https://school.programmers.co.kr/learn/courses/30/lessons/1844
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
from collections import deque
def solution(maps):
n, m = len(maps), len(maps[0])
visited = [ [0]*m for _ in range(n) ]
dx = [ 0, 0, -1, 1 ]
dy = [ -1, 1, 0, 0 ]
def bfs(x, y):
visited[x][y] = 1
q = deque()
q.append([x, y])
while q:
x, y = q.popleft()
if x == n-1 and y == m-1:
return visited[x][y]
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < n and 0 <= ny < m:
if maps[nx][ny] == 1 and visited[nx][ny] == 0:
visited[nx][ny] = visited[x][y] + 1
q.append([nx, ny])
return -1
return bfs(0, 0)
비슷한 문제
728x90
'[Coding Test] > [프로그래머스]' 카테고리의 다른 글
[프로그래머스] lv3 아이템 줍기 / 파이썬 [해설과 다른 풀이], 고득점kit (0) | 2023.09.08 |
---|---|
[프로그래머스] 단어 변환 (0) | 2023.09.07 |
[프로그래머스] 네트워크 (0) | 2023.09.03 |
[프로그래머스] 타겟넘버 (0) | 2023.09.03 |
[카카오] 42888 python : 오픈채팅방 (0) | 2022.05.22 |