출처 : 링크텍스트
BFS
를 이용하여 미로의 출구를 찾을 수 있는지 판별하는 문제이다.
dr = [1, 0, -1, 0]
dc = [0, 1, 0, -1]
def maze():
while Q:
r, c = Q.pop(0)
for i in range(4):
nr, nc = r + dr[i], c + dc[i]
if M[nr][nc] == 3:
return 1
if not M[nr][nc]:
Q.append((nr, nc))
M[nr][nc] = 1
return 0
for _ in range(10):
T = int(input())
M = [list(map(int, input())) for _ in range(16)]
Q = [(1, 1)]
print('#{0} {1}'.format(T, maze()))