계산 과정에서 overflow가 생길 수도 있습니다.
저는 c로 풀었는데 int를 사용해도 정답입니다.
14545번 - Square
계산 과정에서 overflow가 생길 수도 있습니다.
저는 c로 풀었는데 int를 사용해도 정답입니다.
seawon0808님 말씀이 맞습니다.
제 코드도 int로 작성되어 있는데요, 다음 두 조건 때문에 int로 풀리는 것 같습니다.
1) 모든 정수는 106 미만;
2) 어떠한 연산도 32-bit에서 오버플로우가 발생하지 않음.
1) 조건 때문에 64-bit 정수가 필요하다고 생각될 수는 있지만 2) 조건을 만족하려면 답이 32-bit 범위 내에 들어가야 합니다.
실제로 데이터 파일의 입력값은 1111이 최대이고 이때 정답은 대략 4억(<231) 입니다.
그러나, 개인적으로 2)의 설명을 출력 부분이나 문제 부분으로 옮기고 "You can assume that the answer is less than 231"으로 수정되면 좋을 것 같습니다. 합 공식으로 해결하면서 64-bit 정수를 사용할 수도 있으니까요.
댓글을 작성하려면 로그인해야 합니다.
muzigae 1년 전
지문에 You can assume that no operation overflows a 32-bit integer.라는 설명이 있습니다.
그런데 해당 문제를 C++에서 int 자료형 정수를 사용해 풀이할 경우 오답이 나옵니다.
수정이 필요해 보입니다.