댄코 - 댄싱코딩

[1520] 내리막 길 본문

코딩/알고리즘

[1520] 내리막 길

Jk hila 2017. 7. 4. 01:41

처음에 dfs로 풀었는데 당연하게도 시간초과가 떠서 dp로 생각하느라 오래걸렸던 문제다.


상,하,좌,우 네 방향을 전부 검사하면서 재귀로 값을 리턴받는다.


이렇게 이동한 후 끝지점에 도달했을 때 1을 리턴 받으므로 이동했던 경로(A)에 전부 1이 들어가게 된다.


그 후 다른 경로(B)로 이동하다가 전에 거쳤던 경로와 겹치게 되면 (D테이블의 값이 0보다 크면)


겹친 경로는 다시 가볼 필요없이 D테이블 값을 리턴해서 이동해온 경로(B)에 더해준다.


모든 경로를 거쳤을 때 d[0][0]에 갈 수 있는 경우의 수가 저장된다.





'코딩 > 알고리즘' 카테고리의 다른 글

[1094] 막대기  (0) 2017.07.04
[1057] 토너먼트  (0) 2017.07.04
[9252] LCS2  (0) 2017.07.03
[1912] 연속합  (0) 2017.07.01
[9461] 파도반 수열  (0) 2017.07.01
Comments