CodingTest/Baekjun Online Judge

[ BOJ / 파이썬 ] 2178 미로 탐색

EEOOOO 2022. 7. 23. 20:49

/  제출 1  /

 

첫 제출에 틀렸습니다. 가 나와서 당황했었다. 

잘 .. 한 것 같은데 뭐지.. 복사하면서 줄 바꿈 등이 잘 못 옮겨졌었던 것이었습니다.

동일 소스코드를 줄정렬한 것이 아래 코드입니다.

 

/  제출 2  /

###
from collections import deque

n, m = map(int, input().split())
board = [list(map(int, input())) for _ in range(n)]
visited = [[False] * m for _ in range(n)]

visited[0][0] = True
q = deque([[0, 0]])

# 하 우 상 좌
dx = [1, 0, -1, 0]
dy = [0, 1, 0, -1]

# n-1, m-1 도착할 때까지 최단거리
while q:
    x, y = q.popleft()
    for i in range(4):
        nx = x + dx[i]
        ny = y + dy[i]

        if 0 <= nx < n and 0 <= ny < m and visited[nx][ny] == False and board[nx][ny] == 1:
            visited[nx][ny] = True
            q.append([nx, ny])
            board[nx][ny] += board[x][y]

print(board[n - 1][m - 1])

: 초기값에서 목표지점까지 최단거리 찾는 문제로 BFS 이용해 풀었습니다.

따로 값을 두지 않고 해당 보드를 업데이트하는 식으로 구현했습니다.