미로 탐색 – 실버 1

2023. 1. 2. 17:08코딩 테스트 준비

728x90
반응형
from collections import deque

def bfs(y,x):
  queue = deque()
  queue.append((y,x))  
  while queue:
    y, x = queue.popleft()
    for dx, dy in d:
      X, Y = x+dx, y+dy
      if (0 <= X < M) and (0 <= Y < N) and maze[Y][X] == 1:
        queue.append((Y,X))
        maze[Y][X] = maze[y][x]+1 # 전의 값에 1을 더한 값을 넣어 길이를 구한다.
  return maze[N-1][M-1]
  # 마지막에 return을 해줌으로서 출력만 하게 해주면 간단하다.
N, M = map(int, input().split())
maze = [list(map(int, input())) for _ in range(N)]
d = [(1,0),(-1,0),(0,1),(0,-1)]
print(bfs(0,0))
728x90
반응형

'코딩 테스트 준비' 카테고리의 다른 글

음식물 피하기 – 실버1  (0) 2023.01.03
연결 요소의 개수 – 실버 2  (0) 2023.01.02
전쟁 – 전투 실버 1  (0) 2023.01.02
dfs와 bfs – 실버2  (2) 2023.01.02
The Game of Death – 실버 4  (0) 2023.01.02