이분탐색으로 특정 조건의 개수 구하기.

·2021년 8월 2일

알고리즘 기법

목록 보기
15/97

언제 사용할까? 260716

  • 배열의 숫자가 굉장히 많은 상태에서 특정값보다 작거나, 큰 값들의 개수를 찾으려고 할때

주의사항 및 전제 조건.

  • lower_bound와 upper_bound는 정렬이 전제 조건이다.

lower_bound

-> 배열 중에서 찾고자하는 num값보다 이상인 부분의 첫번째 위치를 반환함.

upper_bound

-> 배열 중에서 찾으려는 값보다 큰값이 처음으로 등장하는 위치

나보다 이상인 것들의 개수

  • 나보다 이상인 것들의 개수를 구할수 있따.

  • 전체 cnt에서 이상인것들의 위치 를 빼면
    -> 나보다 큰값들의 개수를 구할수 있다.

나보다 작은 것들의 개수

  • 나보다 작은 값들의 개수를 알 수 있다.

  • 이상인것들의 개수를 반환하는 것을 이용하면 된다.

나보다 큰 것들의 개수

  • upper_bound 사용.

나보다 이하인 것들의 개수.

  • 나보다 큰거를 찾는 거를 이용하면 됨.
    -> 10개다.

나의 개수는 ?


profile
🔥🔥🔥

0개의 댓글