-Code
from collections import deque
n, m = map(int, input().split())
board = []
visit = [[-1] * m for _ in range(n)]
dy = [-1, 0, 1, 0]
dx = [0, -1, 0, 1]
for i in range(n):
line = list(map(int, input().split()))
board.append(line)
for j in range(m):
if line[j] == 2:
start_y, start_x = i, j
visit[start_y][start_x] = 0
if line[j] == 0:
visit[i][j] = 0
def bfs():
deq = deque([(start_y, start_x)])
while deq:
y, x = deq.popleft()
for i in range(4):
nxt_y = y + dy[i]
nxt_x = x + dx[i]
if not (0 <= nxt_y < n and 0 <= nxt_x < m):
continue
if board[nxt_y][nxt_x] == 0 or visit[nxt_y][nxt_x] != -1:
continue
visit[nxt_y][nxt_x] = visit[y][x] + 1
deq.append((nxt_y, nxt_x))
bfs()
for el in visit:
print(*el)
-1인 경우를 생각을 안하고 풀어서 틀려서 넣었으나 index 오류가 생겨서 찾아보니 -1인 경우 index를 넘어갈 수 있는 부분을 해결해야 해서 해당 부분을 수정해서 성공했습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 10104번 Party Invitation (0) | 2025.01.14 |
---|---|
[백준/파이썬] 31880번 K512컵 개최! (0) | 2025.01.13 |
[백준/파이썬] 1697번 숨바꼭질 (0) | 2025.01.12 |
[백준/파이썬] 15449번 Art (0) | 2025.01.11 |
[백준/파이썬] 5753번 Pascal Library (0) | 2025.01.10 |