2776번 - 암기왕
위 소스는 이진탐색을 구현하였는데 틀렸다고 나와서, 이진탐색이 잘못되어 그런가해서
bsearch 함수를 이용하여 해봤는데도 틀렸다고 나오네요.
틀린 이유를 잘 모르겠어서 질문합니다.
소스 첨부했습니다.
cmp 함수 안에서 두 int를 직접 뺄셈하고 계신데요
만약
2147483647 - (-2147483648)
과 같이 결과값이 overflow 되는 경우에는 의도치않은 결과가 나오겠네요
대소비교를 직접 한 후 -1, 0, 1 정도를 리턴하는게 좋을 것 같습니다
아하 감사합니다. overflow를 생각치 못했네요.
댓글을 작성하려면 로그인해야 합니다.
kimchangyoung 8년 전
위 소스는 이진탐색을 구현하였는데 틀렸다고 나와서, 이진탐색이 잘못되어 그런가해서
bsearch 함수를 이용하여 해봤는데도 틀렸다고 나오네요.
틀린 이유를 잘 모르겠어서 질문합니다.
소스 첨부했습니다.