-Code
def bfs(x, y):
dx = [0, 0, 1, -1]
dy = [1, -1, 0, 0]
queue = [(x, y)]
while queue:
a, b = queue.pop(0)
for i in range(4):
nx = a + dx[i]
ny = b + dy[i]
if 0 <= nx < n and 0 <= ny < m and Map[nx][ny] == 1:
Map[nx][ny] = Map[a][b] + 1
queue.append((nx, ny))
return Map[-1][-1]
n, m = map(int, input().split())
Map = [list(map(int, input())) for _ in range(n)]
print(bfs(0, 0))
예전에 했던 BFS로 풀면 되는데 이상한 방법으로 풀려해서 답이 이상하게 나왔고 결국 찾아보다가 예전 방법으로 풀면 되는걸 아는 시간이 좀 걸렸습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 6609번 모기곱셈 (0) | 2022.05.27 |
---|---|
[백준/파이썬] 9063번 대지 (0) | 2022.05.27 |
[백준/파이썬] 15486번 퇴사 2 (0) | 2022.05.26 |
[백준/파이썬] 2877번 4와 7 (0) | 2022.05.25 |
[백준/파이썬] 17390번 이건 꼭 풀어야 해! (0) | 2022.05.24 |