from collections import deque
n=5
m=6
graph = [
[1,0,1,0,1,0],
[1,1,1,1,1,1],
[0,0,0,0,0,1],
[1,1,1,1,1,1],
[1,1,1,1,1,1]
]
def bfs(x,y):
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 nx >= n or ny < 0 or ny >=m:
continue
if graph[nx][ny] == 0:
continue
if graph[nx][ny] == 1:
graph[nx][ny] = graph[x][y] + 1
queue.append((nx,ny))
return graph[n-1][m-1]
dx = [-1,1,0,0]
dy = [0,0,-1,1]
print(bfs(0,0))
'배운 내용 > 코딩테스트' 카테고리의 다른 글
이진 탐색 (0) | 2023.01.26 |
---|---|
선택 정렬, 삽입 정렬, 퀵 정렬, 계수 정렬 (0) | 2023.01.26 |
음료수 얼려먹기(dfs, bfs 예) (0) | 2023.01.26 |
BFS(Breadth-First Search) (0) | 2023.01.26 |
DFS(Depth-First Search) (0) | 2023.01.26 |