his130   6년 전

똑같은 코드인데 아래 코드에서는 메모리초과가 발생합니다.

위의 코드는 AC를 받습니다.

제 생각에는 시간초과가 발생해야 할 것 같은데요...

위의 코드는 예제를 풀 때

4 2 1, 2 2 2 1, 2 2 1 1 1 1  . . .이런식으로 내림차순으로 구해갑니다.

아래 코드는

1 1 1 1 1 1 1 1 1 , 1 1 1 1 1 2 이런식으로 오름차순으로 구해갑니다.

그래서 저는 하나가 틀리다면 아래 코드가 시간초과가 발생할 것 같은데.. 메모리 초과가 발생합니다.

D[N][K] = N 을 2^k 으로 시작해서 만드는 방법입니다.

didgogns   6년 전

아래 코드에서는 N=1000000 인 경우에 go(999999,0)부터 go(1,0)까지를 모두 호출해야 풀리기 때문에 stack overflow가 날 것 같아요.

반대로 위의 코드에서는 어딘가에서 DP의 결과를 사용해서 끊기기 때문에 맞았습니다가 나오는 것 같습니다.

his130   6년 전

아 그렇군요! 감사합니다

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