아마 입력값이 boundary (ex. n=1,500,000) 과 같은 값이 들어갔을 때 문제가 되는 것 같은데요.
int N; 이 전역으로 선언되면, N과 dp 변수가 전역메모리 상에서 연속적으로 할당이 되어 있겠죠.
그런데, 26, 29 line 에서 dp[i+1] 의 값을 참조하고 있으니 n=1,500,000 과 같은 값이 입력으로 들어가게 되면, 아마 26line에서 의도치않은 값이 ( N값 ) 들어갈 것이라 생각되네요.
지역변수로 할당하면 위 문제가 발생하지 않으니 정답으로 처리되구요.
dp 배열 크기를 1,500,002 로 해주시면 int N 을 전역으로 선언해도 정답처리 될 것 같습니다.
eogns0321 3년 전
코드에서 int N; 이 부분을 main 안에 넣으면 맞고 전역 변수로 두면 틀리네요...
이유가 뭔가요???