imonlyone   1년 전

answer[mid]++; 를 사용해서 해당 인덱스에 + 1처리하였음에도 왜 답이 0 과 1로만 나올까요 동일 값에 맞는 1이상의 값이 나오는게 맞지 않나요..

wak8835   1년 전

작성자님이 말씀하시는 바는 이해되나, 해당 연산에 있는 후위증감(i++) 의 경우에는 해당 명령이 종료되고 실행되는 형태입니다.

만약 2 이상의 값이 나오려는 경우 전위증감(++i)을 사용하셔야 합니다.

(지금 올리신 binarySearch 라는 함수는 18번 라인에 따른 값 반환에 의해서 정상적인 이분탐색 로직은 아닙니다.)

해당 문제를 binary search로 푸시려는 경우, C++의 함수인 lower_bound와 upper_bound를 자바 언어로 구현하는 형태로 진행하셔야 합니다. 

(자바 내에 구현된 Arrays.binarySearch를 푸는 방법도 있지만, 그 외에 추가로직을 필요로 하고, 설명을 부가적으로 해드려야하기에 추천드리지 않습니다)

필요하신 경우 자바로 구현된 lower_bound, upper_bound 함수를 추가적으로 댓글에 달아드릴 수 있으니, 필요하시면 대댓글 부탁드리겠습니다.

+ 사설이지만 주어진 메모리 조건으로 보았을 때에 인덱스 카운팅으로도 충분히 푸실 수 있습니다. (코드 제출을 통한 검증 완료)

imonlyone   1년 전

친절한 댓글 너무 감사합니다.. 실례가 되지 않는다면 lower_bound, upper_bound 함수를 보내주신다면 정말 열심히 공부하겠습니다.. 감사합니다.. 

imonlyone   1년 전

감사합니다! 확인했습니다!! 

댓글을 작성하려면 로그인해야 합니다.