chatterboy   9년 전

안녕하세요.

우선 이 문제를 동전 DP 방식으로 해결했습니다.

D(i, j) = i를 j가지로 만들 수 있는 경우의 수

문제는 제가 VS2013에서 100만을 넣었을 때는 프로그램이 그냥 죽어버리더군요.

그런데 BOJ에서 채점, 코딩을 해본 결과 출력값이 잘 나왔습니다. 무슨 이유 때문에 이러한 차이를 만들었는지 궁금합

니다.

yukariko   9년 전

재귀로 인한 스택 오버플로우가 아닌가 생각해봅니다.

재귀를 처리하는 방식에서 GCC는 재귀할 때마다 스택을 쌓아가지 않아도 될 때(꼬리재귀라 하던가요?)는 스택을 점점 늘리지않고 재귀를 하지만,

VS에서는 이러한 처리가 없는것으로 알고있습니다. 그로인해 VS에서 스택이 점점 쌓이면서 스택오버플로우가 일어난것으로 보입니다.

아니면 단순히 설정차이로 스택 메모리 크기가 채점환경과 코딩환경이 달라서 그럴수도 있구요.

chatterboy   9년 전

답변 감사드립니다 ! :D

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