[백준] 2178-미로탐색

kiteday·2025년 7월 17일
0

코딩테스트

목록 보기
17/46

문제바로가기

from collections import deque

n, m = map(int, input().split())
dx = [1, -1, 0, 0]
dy = [0, 0, 1, -1]

graph = [[] for _ in range(n)]
for i in range(n):
    tmp = list(map(int, input()))
    graph[i]=tmp

data = deque()
data.append((0,0))
           
while(data):
    for _ in range(len(data)):
        x, y = data.popleft()
        
        for idx in range(4):
            nx = x+dx[idx]
            ny = y+dy[idx]
            
            if (0<=nx<n) and (0<=ny<m) and graph[nx][ny]==1:
                data.append((nx,ny))
                graph[nx][ny] = graph[x][y]+1
                
print(graph[n-1][m-1])

처음에 제대로 푼 것 같은데 왜 답이 안나오지?? 라는 생각으로 한참 헤맸는데 알고보니 시작점인 (0,0)만 넣어줘야되는데 (while문 안에 append가 되기 때문) dfs를 생각하고 무지성으로 1인 모든 값을 전부 넣어줘서 그랬다. 코딩이란.. 얼마나 섬세한 작업인가..

profile
공부

0개의 댓글