https://school.programmers.co.kr/learn/courses/30/lessons/1844
from collections import deque
def bfs(x, y, maps):
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
queue = deque()
queue.append((x, y))
while(queue):
x, y = queue.popleft()
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if nx < 0 or ny < 0 or nx >= len(maps) or ny >= len(maps[0]):
continue
if maps[nx][ny] == 0:
continue
if maps[nx][ny] == 1:
maps[nx][ny] = maps[x][y] + 1
queue.append((nx, ny))
if maps[-1][-1] == 1:
return -1
return maps[-1][-1]
def solution(maps):
answer = 0
answer = bfs(0, 0, maps)
return answer
'Coding Test > 스터디' 카테고리의 다른 글
[BFS&DFS] 백준_2583_영역구하기 (0) | 2023.11.15 |
---|---|
[DFS&BFS] 백준_1303_전쟁전투 (0) | 2023.11.15 |
[1주차] 스터디 시작 및 완전탐색 (0) | 2023.11.15 |