JiSoo's Devlog
[백준 / 파이썬] 2178 미로 탐색 본문
from collections import deque
n, m = map(int, input().split())
g = []
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
for _ in range(n):
g.append(list(map(int, input())))
def bfs(x, y):
q = deque()
q.append((x, y))
while q:
x, y = q.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 g[nx][ny] == 0:
continue
if g[nx][ny] == 1:
g[nx][ny] = g[x][y] + 1
q.append((nx, ny))
return g[n-1][m-1]
print(bfs(0, 0))
bfs를 사용해서 풀었다
dx, dy로 네 방향을 정의하고 deque를 생성
현재 위치에서 4가지 방향으로 위치를 확인하고 위치가 벗어나면 안 되기 때문에 조건을 추가해 줬다
g[nx][ny] == 0 이면 벽이기 때문에 진행하지 못하고 1이면 이동
처음에 입력받을 때 input().split()으로 하니까 런타임에러가 떴는데 split()을 지우니까 성공했다
728x90
'코테준비' 카테고리의 다른 글
[백준 /파이썬] 4673번 셀프 넘버 (1) | 2024.01.24 |
---|---|
[백준 / 파이썬] 2178 미로 탐색 (1) | 2024.01.22 |
[백준 / 파이썬] 2908번 상수 (0) | 2024.01.20 |
[백준 / 파이썬] 1010번 다리 놓기 (0) | 2024.01.20 |
[백준 / 파이썬] 2941번 크로아티아 알파벳 (0) | 2024.01.19 |