[백준] 2178번: 미로 탐색 문제 풀이 파이썬

현톨·2022년 4월 13일
0

Algorithm

목록 보기
18/42

문제 링크

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

풀이 방식

dfs 탐색을 통해 (0, 0)부터 (N, M)까지의 이동 횟수를 카운트 한다.

전체 코드

from sys import stdin
from collections import deque

N, M = map(int, stdin.readline().split())
maze = []
for _ in range(N):
    maze.append(input())
dx = [-1, 0, 1, 0]
dy = [0, -1, 0, 1]
queue = deque([[0, 0, 1]])
visited = [[0, 0]]

while queue:
    x, y, cnt = queue.popleft()
    if x==N-1 and y==M-1:
        print(cnt)
        break
    for i in range(4):
        nx = x + dx[i]
        ny = y + dy[i]

        if 0 <= nx < N and 0 <= ny < M and [nx, ny] not in visited and maze[nx][ny] == '1':
            queue.append([nx, ny, cnt + 1])
            visited.append([nx, ny])
profile
기록하는 습관 들이기

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN