dbqudwns1212   2년 전


D[i][j] = 길이가 i고 마지막 숫자 j인 이친수 라고 정의했을 때

맨 뒤에 0이 나오면 앞의 숫자에는 0과 1이 나올 수 있으니까

D[i][0] = D[i-1][0] + D[i-1][1] 이고

맨뒤에 1이나오면 그 바로앞의 숫자는 0밖에 못오므로

D[i][1] = D[i-1][0] 입니다.

그 중 제 코드에서

마지막에 정답을 도출해내는 과정에서 ans를

ans = D[N][0] + D[N][1]; 이렇게 정의하면 맞다고 나오고


ans = D[N-1][0] + D[N-1][1] + D[N-1][0] 이렇게 정의하면 100%에서 틀렸다고 나옵니다. 

만약에 N이 0이되었을때 경계값에 걸리는가 해서 봤더니 N은 1보다 크기 때문에 그것도 아닌것 같은데 뭘까요.....???

혹시 어떤 차이가 있을까요?? 둘다 똑같은 말이라고 생각하는데 고수님들 부디 답변 부탁드립니다 ㅠㅠㅠ

ychangseok   2년 전

N = 1인 경우

D[N][0] + D[N][1] = 0 + 1 = 1

D[N-1][0] + D{N-1][1] + D[N][0] = 0 + 0 + 0 = 0

입니다

dbqudwns1212   2년 전

앗......ㅠㅠ 감사합니다 저는 왜이렇게 생각하지 못했을까요.... 

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