left = m+1에서 m이 0x7fffffff이면 int overflow가 발생하고, 그 overflow로 인해 left와 right의 값이 왜곡되어서 while문을 탈출하지 못하네요.
1 1 2147483647
1654번 - 랜선 자르기
left = m+1에서 m이 0x7fffffff이면 int overflow가 발생하고, 그 overflow로 인해 left와 right의 값이 왜곡되어서 while문을 탈출하지 못하네요.
1 1 2147483647
중간중간 assert문 잘 이용하시면 원인 찾는데 도움 많이 될거에요
댓글을 작성하려면 로그인해야 합니다.
sourish92 5년 전
안녕하세요.
제목 그대로.. 시간 초과가 나는 이유를 도저히 모르겠습니다..
중간 mid값 연산 과정에서 int 범위를 넘어갈 수 있기 때문에 long long으로 타입 캐스팅을 해주고 처음 코드를 제출했더니 시간초과가 났습니다.
아무리 생각해도 O(nlgn)이라서 시간초과가 나지 않을 것 같은데 계속 코드를 수정하다가
전체를 long long 형으로 제출했더니 AC를 받았습니다. 하지만, 정답을 맞춘이후에도 아래의 코드가 왜 시간초과가 발생하는지 모르겠습니다..ㅠㅠ 이유를 아시는 고수님들 도와주시면 감사하겠습니다..ㅠㅠ