djfls0304   4년 전

위의 코드는 1,1 에서 M,N까지 순차적으로 경로를dp에 저장하여 dp[M][N] 까지 도착 가능한 경로를 구한것이고
아래의 코드는 dfs 를 사용하여 구한것 입니다.

두 코드의 시간 차이가 많이 나지 않는다고 생각하는데

어떤 부분 두 코드에서 시간차이가 나오는지 궁금합니다.

seico75   4년 전

윗 소스가 시간 초과가 날 것 같습니다.

아래는 

if (dp[x][y] != -1) return dp[x][y];

와 같이 dp 를 써서 중복 계산을 막지만 웟 소스는 전혀 그런 로직이 없네요.

사실 윗소스는 마지막 dp 값 외에는 참조도 하지 않아서 dp 배열 대신에 하나의 변수가 있어도 충분한 해법이네요

마지막 점까지 가는 경우수를 그냥 다 세는 방법이고, 역시 dfs 로 보이구요.

댓글을 작성하려면 로그인해야 합니다.