본문 바로가기
알고리즘/백준온라인저지 (Python)

[백준온라인저지] 2178 - 미로탐색

by 미래문 2021. 8. 24.
반응형


 

 

https://www.acmicpc.net/problem/2178

 

2178번: 미로 탐색

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

www.acmicpc.net

import sys

n, m = map(int, sys.stdin.readline().split())

v = [ sys.stdin.readline().rstrip() for i in range(n) ]
visit = [ [0] * (m) for i in range(n) ]

dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1]

queue = [(0, 0)]
visit[0][0] = 1

while queue:
    x, y = queue.pop(0)

    if x == n-1 and y == m-1:
        print(visit[x][y])
        break

    for i in range(4):
        nx = x + dx[i]
        ny = y + dy[i]

        if 0 <= nx < n and 0 <= ny < m:
            if visit[nx][ny] == 0 and v[nx][ny] == '1':
                queue.append((nx, ny))
                visit[nx][ny] = visit[x][y] + 1

 

반응형

댓글