해당 언어는 잘 모르겠으나 c/c++ 기준에서 말씀드리면..
정답을 sum에 더해갈 때 overflow가 발생하는데 이때 정답과는 완전히 다른 숫자가 되버리므로 틀리게 됩니다. 따라서 10억의 나머지 연산을 계속 해준 것으로 정답을 제출하는데.. 문제 요구사항도 그렇고요
그런데 정답을 계산할 때 뿐만 아니라 일반 케이스에서도 더하다보면 수십억을 쉽게 넘어가게 됩니다. 따라서 일반 케이스에서도 나머지 연산을 해줍니다.
10844번 - 쉬운 계단 수
원래 마지막 답 낼때 나눠줘도 되지만 그렇게 할경우 int가 가질 수 있는 범위를 넘어서게 되면서 오버플로우가 발생해서 답이 틀려지는 걸로 생각합니다.
그래서 오버플로우가 발생하기 않도록 매 케이스마다 나눠주는 거죠
댓글을 작성하려면 로그인해야 합니다.
yordlejason 6년 전
틀린 정답을 제출했을 때에는 15번줄, 즉 일반적인 케이스에서 %1000000000을 해주지 않았습니다.
정답 처리를 받았을 때에는 15번줄에서 %1000000000을 추가해줬구요 (이 부분은 저와 같은 이유로 틀리신 분들이 이렇게 하고 정답처리를 받았다 하기에 추가해봤습니다.)
라고 되어있는데요..
다른분들이 질문하신것 읽어봤는데 잘 이해가 안가 질문 올립니다.
송구스럽지만 가능하시다면 구체적인 예시와 설명 부탁드립니다.
감사합니다 :-)