cmod.ify

[2178] 미로 탐색 본문

BASIC/코딩테스트

[2178] 미로 탐색

modifyC 2026. 1. 5. 19:19
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