본문 바로가기
알고리즘/그래프 탐색

[백준][Python] 2178번 미로 탐색

by 임짠짠 2022. 10. 4.
반응형
 

2178번: 미로 탐색

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

www.acmicpc.net

 

 

코드

from collections import deque
def bfs(x,y):
	queue = deque()
	queue.append((x,y))
	while queue:
		x,y = queue.popleft()
		for i in range(4):  # 왼쪽,오른쪽,위,아래 방향 모두 확인
			nx = x + x_n[i]
			ny = y + y_n[i]
			if nx >= 0 and nx < n and ny >= 0 and ny < m:	# 범위를 벗어나지 않고
				if maze[nx][ny] == 1:	# 이동할 수 있는 칸인 경우
					maze[nx][ny] = maze[x][y] + 1
					queue.append((nx,ny))
	return maze[n-1][m-1]
    
n,m = map(int,input().split())
maze = []
x_n = [0,0,-1,1]
y_n = [-1,1,0,0]

for _ in range(n):
	maze.append(list(map(int,input())))

print(bfs(0,0))

 

 

반응형

댓글