DevKim

[Python] 백준 #2178 미로탐색 본문

알고리즘 PS

[Python] 백준 #2178 미로탐색

on_doing 2020. 12. 19. 20:40
728x90

www.acmicpc.net/problem/2178

 

2178번: 미로 탐색

첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.

www.acmicpc.net

BFS로 해결.

from collections import deque

def dfs(x,y):
    queue=deque()
    queue.append((x,y))
    
    while queue:
        
        x,y=queue.popleft()
        
        for i in range(4):
            nx=x+dx[i]
            ny=y+dy[i]
            
            if(nx<0 or ny<0 or nx>=n or ny >=m):
                continue
                
            if l_list[nx][ny]==0:
                continue
                
            if l_list[nx][ny]==1:
                l_list[nx][ny]=l_list[x][y]+1
                queue.append((nx,ny))
    
    return l_list[n-1][m-1]

n,m=map(int,input().split())
l_list=[]
for i in range(n):
    l_list.append(list(map(int,input())))
    
# 상하좌우로 움직이기
dx=[-1,1,0,0]
dy=[0,0,-1,1] 
           
print(dfs(0,0))               
728x90
Comments