1011번 - Fly me to the Alpha Centauri
해당 코드에서 j를 int로 선언하면 시간초과가 나오고 long long으로 선언하면 맞았다고 뜨는데요..
dtc의 최댓값이 231, 대략 21억이니 for문에서 j가 아무리 크더라도 5만까지밖에 안올라갈거같은데
왜 시간초과가 뜨는걸까요...ㅜㅜ
또한, 다른분들 에제에서
0 2147483647 를 입력하면 시간초과가 뜨는데
0 2200000000 을 입력하면 제대로된 값이 출력됩니다.
이건 또 왜 이런걸까요...ㅜㅜ
j가 int형이면 j * j는 무한한 범위를 표현할 수 있는 것이 아니라 이 역시 int형입니다. j가 2^15.5 이상이 되는 순간부터 이 계산 자체가 오버플로우를 일으키기 때문에 제대로 된 비교를 할 수 없습니다.
아하 그렇군요!!
감사합니다!!
댓글을 작성하려면 로그인해야 합니다.
kdh2637 5년 전
해당 코드에서 j를 int로 선언하면 시간초과가 나오고 long long으로 선언하면 맞았다고 뜨는데요..
dtc의 최댓값이 231, 대략 21억이니 for문에서 j가 아무리 크더라도 5만까지밖에 안올라갈거같은데
왜 시간초과가 뜨는걸까요...ㅜㅜ
또한, 다른분들 에제에서
0 2147483647 를 입력하면 시간초과가 뜨는데
0 2200000000 을 입력하면 제대로된 값이 출력됩니다.
이건 또 왜 이런걸까요...ㅜㅜ