반응형
코드
from collections import deque
def bfs(x,y):
queue = deque()
queue.append((x,y))
while queue:
x,y = queue.popleft()
for i in range(4): # 왼쪽,오른쪽,위,아래 방향 모두 확인
nx = x + x_n[i]
ny = y + y_n[i]
if nx >= 0 and nx < n and ny >= 0 and ny < m: # 범위를 벗어나지 않고
if maze[nx][ny] == 1: # 이동할 수 있는 칸인 경우
maze[nx][ny] = maze[x][y] + 1
queue.append((nx,ny))
return maze[n-1][m-1]
n,m = map(int,input().split())
maze = []
x_n = [0,0,-1,1]
y_n = [-1,1,0,0]
for _ in range(n):
maze.append(list(map(int,input())))
print(bfs(0,0))
반응형
'알고리즘 > 그래프 탐색' 카테고리의 다른 글
[백준][Python] 4963번 섬의 개수 (0) | 2022.10.07 |
---|---|
[백준][Python] 11724번 연결 요소의 개수 (0) | 2022.10.06 |
[백준][Python] 1012번 유기농 배추 (0) | 2022.10.05 |
[백준][Python] 2667번 단지번호붙이기 (0) | 2022.09.22 |
[백준][Python] 2606번 바이러스 (0) | 2022.09.15 |
댓글