[백준] 2178 미로
N, M = map(int,input().split())
matrix = [list(input()) for _ in range(N)]
visited = [[0]*M for _ in range(N)]
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
q = [(0, 0)]
visited[0][0] = 1
while q:
current = q.pop(0)
x = current[0]
y = current[1]
if x == N-1 and y == M-1:
print(visited[x][y])
break
for dir in range(4):
nx = x+dx[dir]
ny = y+dy[dir]
if 0<=nx<N and 0<=ny<M and visited[nx][ny] == 0 and matrix[nx][ny] == '1':
visited[nx][ny] = visited[x][y]+1
q.append((nx,ny))
BFS의 교과서같은 문제. 프로그래머스 코테를 광탈해서 오늘은 좀 짧게 써야겠다.
TIL
- BFS의 기본구조와.. 나도 한 방에 코딩을 해버릴 수 있다는 점이다.
Author And Source
이 문제에 관하여([백준] 2178 미로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@tomjones/백준-2178-미로저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)