papayetoo   4년 전

분명 문제에서 N 자릿수의 계단수 구할 때 첫 자리가 0으로 시작하는 것이 없다고 하여.

아래 코드에서 주석으로 문제되는 부분이라 체크한 곳에서 i = 1부터 더하는 것이 맞다고 생각했는데 틀렸다고 해서

i = 0부터 바꾸니 옳은 코드로 나오는데 제 생각이 잘못된 건지 궁금합니다.

3587jjh   4년 전

i=1부터 시작해야 된다는거면, dp[n][k] = "n자리이면서 k로 시작하는 계단수의 개수"로 정의하신건가요?

그러면 35째줄은 의미가 맞지 않습니다. 그렇다고 dp[n][k] =   "n자리이면서 k로 끝나는 계단수의 개수"라고 하면

i=1부터 시작해야된다는 말이 이상합니다. 두 정의가 혼용되고 있는데 의도치 않게 답이 나온것으로 보입니다.


papayetoo   4년 전

dp[n][k] 는 'n 자리수이면서 k로 시작하는 계단 수'로 정의한 게 맞습니다.

35번 째줄의 의미는 3자리수 이면서 1로 시작하는 계단수를 구하는 것을 예로 들어 설명하면,

처음 1 이후에 올 수 있는 수는 2자리수이면서 시작수가 0 또는 2가 있을 때처럼 편하게 구하기 위해서 설정한 것입니다.

하지만 sum 계산시에는 dp[n][0]는 제외되어야 한다고 생각한 것 뿐입니다. 제 생각에는 두 정의는 전혀 혼용되지 않습니다.

3587jjh   4년 전

그러면 23째줄 값도 1로 해야될것같네요

3587jjh   4년 전

n 자리수이면서 k로 시작하는 계단 수라는 정의에서 제가 무의식적으로 맨 앞자리가 0으로 시작하는 경우는 제외했을거라고 오해했네요

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