projung0722   2년 전

아래같이 풀었는데 시간초과가 나는 이유를 모르겠습니다. 입력하고 dp배열에 넣어주는 부분이 문제인거같은데 알려주세요ㅠ

djm03178   2년 전

17번째 줄의 16을 15로 바꾸면 됩니다.

projung0722   2년 전

djm03178 님 감사합니다! 그런데 왜 아래와 같이 제출했을때는 시간초과가 안나는 것일까요? 그래서 저는 반복문에서 문제가있는게 아니라 앞쪽 입력부에서 문제가있나 계속 고민햇습니다.

djm03178   2년 전

원래 코드의 문제점은 i가 0이면 j가 15까지 증가하고, dp의 크기는 16이기 때문에 인덱스는 15까지밖에 없는데 18번째 줄에서 dp[j+1] == dp[16]에 접근하는 것이 문제였습니다.

아래 코드는 그런 문제가 없습니다.

projung0722   2년 전

감사합니다! 그러면 시간초과가에서 문제가 아니라 배열 index가 초과해서 그런건데, 그게 어떻게 되서 시간초과 문제까지 야기했다고 생각하면 될까요?

djm03178   2년 전

배열의 크기를 넘어서는 접근은 undefined behavior이기 때문에 '어떻게'를 논하는 것 자체가 거의 의미가 없습니다. 어떤 결과든 나올 수 있습니다.

djm03178   2년 전

projung0722   2년 전

정말 감사합니다

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