작성자님이 말씀하시는 바는 이해되나, 해당 연산에 있는 후위증감(i++) 의 경우에는 해당 명령이 종료되고 실행되는 형태입니다.
만약 2 이상의 값이 나오려는 경우 전위증감(++i)을 사용하셔야 합니다.
(지금 올리신 binarySearch 라는 함수는 18번 라인에 따른 값 반환에 의해서 정상적인 이분탐색 로직은 아닙니다.)
해당 문제를 binary search로 푸시려는 경우, C++의 함수인 lower_bound와 upper_bound를 자바 언어로 구현하는 형태로 진행하셔야 합니다.
(자바 내에 구현된 Arrays.binarySearch를 푸는 방법도 있지만, 그 외에 추가로직을 필요로 하고, 설명을 부가적으로 해드려야하기에 추천드리지 않습니다)
필요하신 경우 자바로 구현된 lower_bound, upper_bound 함수를 추가적으로 댓글에 달아드릴 수 있으니, 필요하시면 대댓글 부탁드리겠습니다.
+ 사설이지만 주어진 메모리 조건으로 보았을 때에 인덱스 카운팅으로도 충분히 푸실 수 있습니다. (코드 제출을 통한 검증 완료)
imonlyone 1년 전
answer[mid]++; 를 사용해서 해당 인덱스에 + 1처리하였음에도 왜 답이 0 과 1로만 나올까요 동일 값에 맞는 1이상의 값이 나오는게 맞지 않나요..