Joo's
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
profile

Joo's

@JooJY

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!