long long 임에도 오버플로우가 납니다.
+보다 % 연산자가 먼저 불립니다.
10844번 - 쉬운 계단 수
sum += dp[n][i]% 1000000000;
요건 sum = sum + dp[n][i]% 1000000000;
이렇게 작동합니다.
즉 dp[n][i]% 1000000000; 이후에 sum에 더해지게되서, sum은 계속해서 증가하게 됩니다.
그래서 long long의 범위를 넘어가게되서 오버플로우가 나게됩니다.
결론적으로 예를들어 입력으로 100을 넣으시면
-276563184
이런 값이 뜨게됩니다.
sum += dp[n][i];댓글을 작성하려면 로그인해야 합니다.
kangsy763 4년 전
무엇이 문제인걸까요? 테스트 케이스는 잘 나옵니다