맞는데 왜 틀릴까..?

알고리즘 문제/다이나믹 프로그래밍

DP + DFS (내리막 길)

안도일 2022. 1. 19. 18:56

-1 : 아직 한 번도 탐색하지 않은 좌표

0 : 목표 지점까지 경로가 없는 좌표

그리고 목표 지점까지 갈 수 있는 좌표라면, 방문한 횟수에 따라 수가 올라갈 것이다.

 

1. dp 테이블을 -1로 초기화 한 후 dfs함수를 돌려 만약 x,y가 M-1,N-1 즉 좌표의 도착점 까지 도달한다면 1을 리턴하여 더해준다.

2. x,y의 좌표가 -1이 아니라면 방문 한 적이 있는 좌표므로 그 값을 리턴하여 더해준다.

3. 일단 좌표를 0으로 초기화 해서 4방향 dfs를 수행하여도 갈 수 있는 곳이 없다면 0을 리턴 

4. 경로가 있다면 정상적으로 dfs를 수행.

5. 출발지가 결국 경로의 수가 됨

 

dp테이블

[3,  2,  2,  2,  1]
[1, -1, -1,  11]
[1, -1, -11, -1]
[1,  1,  1,  1, -1]