15954번 - 인형들
한번 봐주시면 감사하겠습니다.
24번째 줄에서 오버플로우가 발생할 수 있습니다.
말씀해주신 부분 수정 해봤는데 안되네요 ㅠㅠ 이 문제에서 나올 수 있는 최대 값으로 돌려봤는데, 자료형이 long long이라서 오버플로는 발생 안하는 것 같아요
아니요, 이 코드에서 24번째 줄만 고치면 맞습니다. (long long)arr[j]로만 바꾸면 됩니다.
그리고 자료형이 long long인 건 sum2가 long long인 거지, arr[j]는 int형입니다. int * int = int이므로, 이 결과가 int 범위를 벗어나면 오버플로가 발생한 겁니다. 뒤늦게 long long으로 변환되어 sum2에 더해져도, 이미 때는 늦었죠. long long으로 변환을 먼저 하고, 그 뒤에 곱셈이 이루어져야 합니다.
와 진짜 감사드립니다. 제가 너무 몰랐네요 ㅠㅠ 복받으실 거에요. 감사합니다!!
댓글을 작성하려면 로그인해야 합니다.
jangyoqr 5년 전
한번 봐주시면 감사하겠습니다.