[김태원 알고리즘] 미로탐색 (DFS)
사용 언어: Python3
문제
풀이
내 풀이
import sys
sys.setrecursionlimit(10**6)
dx, dy = [0,-1,0,1], [1,0,-1,0]
def DFS(x, y):
global cnt
if (x, y) == (N-1, N-1):
cnt += 1
else:
for w in range(4):
xx, yy = x+dx[w], y+dy[w]
if xx<0 or xx>=N or yy<0 or yy>=N:
continue
if board[xx][yy] == 1 or visited[xx][yy] == 1:
continue
visited[xx][yy] = 1
DFS(xx, yy)
visited[xx][yy] = 0 # ✅ back
N = 7
board = [list(map(int, input().split())) for _ in range(N)]
visited = [[0] * N for _ in range(N)]
visited[0][0] = 1 # ✅ 출발점 넣어주기
cnt = 0
DFS(0, 0)
print(cnt)
- 정답!
💛 개인 공부 기록용 블로그입니다. 👻