def dfs(r, c):
global result
visited[r][c] = 1
if maze[r][c] == '3':
result = 1
return result
for i in range(4):
nr = r + dx[i]
nc = c + dy[i]
# 범위 벗어나지 않도록 체크
if 0 <= nr < 16 and 0 <= nc < 16:
if maze[nr][nc] != '1' and visited[nr][nc] == 0:
dfs(nr, nc)
return result
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
for tc in range(10):
T = int(input())
maze = [list(input()) for _ in range(16)]
visited = [[0]*16 for _ in range(16)]
result = 0
# 출발지점 위치찾기
for i in range(16):
for j in range(16):
if maze[i][j] == '2':
sr, sc = i, j
break
print('#{} {}'.format(T, dfs(sr, sc)))
🔑 도착했는지 안했는지만 판단하면 되는문제라 간단했다. 기초단계의 BFS문제는 비슷비슷한것같다... 잘 모르고 하는 소리이긴 하지만 ㅎㅎ😓