실버1 : DFS 문제이다.
풀이
DFS와 동적계획법이 섞인 문제이다. 일단, 특정 위치까지 갈 수 있는 모든 경우의 수를 구해야 하는데, 그냥 방문할 때마다 count를 늘려준다면, 중복해서 방문하는 곳이 너무 많아 비효율 적이다.
그렇기 때문에, 특정 시작 지점에서 가질 수 있는 경우의 수를 잡고, 이 경우의 수를 잡기 위해서는 다음 방문의 경우의 수를 더해주는 것으로 해결할 수 있다.
이 때, 중간 방문 지점이 0인 경우 그냥 시작에서 끝까지의 답을 구하면되고, 그렇지 않을 경우 중간지점까지, 그리고 중간지점에서 끝지점까지 구하는 것으로 문제를 해결한다.
Code
Reference