"사용하기 전에 반드시 인자로 사용되는 배열을 sort 할 것"
탐욕법(Greedy) 문제를 풀다가 배열에 원하는 값이 들어있는지 확인하기 위해
Arrays.binarySearch 함수를 사용하였다. API설명은 제대로 보질 않고 indexOf와 같은 건 줄 알았다.
그러나 계속 테스트케이스에서 걸렸고, 다른 사람 코드를 봤는데 나랑 다를 바가 없어서 정말 이해가 안 됐다.
그래서 조건을 이것저것 바꿔보며 한 줄 한 줄 무식하게 디버깅을 시작했다.
그런데 당연히 잘 돌아갈거라고 예상했던 binarySearch에서 예상과 다른 결과를 return했었다.
그래서 구글링을 한 결과 binarySearch 전에는 반드시 sort 해놔야 함. 그래서 API 설명을 봤는데 두 번째 줄에 그대로 적혀 있었음... 그리고 그럼 나랑 정말 비슷하게 짠 다른 사람 코드는 어떻게 돌아간거지 하고 다시 봤더니 Arrays.sort로 미리 해놓고 진행했음.
오늘의 결론
1. 아는 만큼 보인다
2. 소스는 거짓말하지 않는다
3. 보고 싶은대로 본다
'언어 > 알고리즘' 카테고리의 다른 글
Java Sort Collection (0) | 2021.03.15 |
---|