미로 탐색 – 실버 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 |