cmod.ify
[2178] 미로 탐색 본문
728x90
반응형
bfs 하는데 처음에 pop했다가 틀림
popleft라는 것을 잊지말자
import sys
from collections import deque
input = sys.stdin.readline
n,m = map(int, input().split())
miro = []
visitied = [[False] * m for _ in range(n)]
for i in range(n):
li = input().strip()
li2 = [int(i) for i in li]
miro.append(li2)
# 1 이동 가능 , 0 이동 불가
# 1,1위치부터 n,m위치로 이동하는 최소칸수(bfs)
dx = [0,0,-1,1]
dy = [-1,1,0,0]
def bfs():
x,y,cnt = 0,0,1
q = deque([(x,y,cnt)])
visitied[x][y] = True
while q:
x, y, cnt = q.popleft()
visitied[x][y] = True
if x == (n-1) and y == (m-1):
return cnt
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
if 0 <= nx < n and 0 <= ny < m:
if visitied[nx][ny] == False:
if miro[nx][ny] == 1:
q.append((nx,ny, cnt+1))
visitied[nx][ny] = True
print(bfs())
728x90
반응형
'BASIC > 코딩테스트' 카테고리의 다른 글
| [5525] IOIOI (0) | 2026.01.06 |
|---|---|
| [2667] 단지번호붙이기 (1) | 2026.01.06 |
| [1389] 케빈 베이컨의 6단계 법칙 (0) | 2025.12.31 |
| [30804] 과일 탕후루 (0) | 2025.12.30 |
| [14940] 쉬운 최단거리 (1) | 2025.12.30 |