본문 바로가기
Python/DFS&BFS

[Algorithm] 백준 1261 알고스팟 | 파이썬 BFS

by 유일리 2024. 9. 11.

※ 1261 알고스팟

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

 

문제 해결 TIP

이전 미로만들기와 동일한 문제이다. n, m 값의 범위만 재설정해준다.

 

전체 코드

from collections import deque

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


def bfs(x,y):
    queue = deque()
    queue.append((x,y))
    visited = [[-1] * m for _ in range(n)]
    visited[x][y] = 0
    while queue:
        x, y = queue.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]==-1:
                if graph[nx][ny]==0:
                    queue.appendleft((nx,ny))
                    visited[nx][ny] = visited[x][y]
                else:
                    queue.append((nx,ny))
                    visited[nx][ny] = visited[x][y] + 1
    return visited
graph = []
m, n = map(int,input().split())
for i in range(n):
    graph.append(list(map(int,input())))

visited = bfs(0,0)
print(visited[n-1][m-1])

댓글