[알고리즘] lower_bound, upper_bound
·
알고리즘
사용 전 배열, vector 오름차순 정렬 필요 1. 직접 구현하기 lower_bound #include using namespace std; #define MAX_N 500000 int n; int arr[MAX_N]; //lower_bound(x) : x보다 같거나 큰 수 중에 가장 왼쪽에 있는 수의 인덱스 int lower_bound(int x) { int left = 0; int right = n - 1; int ret = n; // 같거나 큰 최초의 위치를 찾아야 하므로 최악을 고려해서 n이 초깃값이 되어야 함 while (left = x) { // mid 값이 관심있는 영역이라면 ret = mid; right = mid - 1; //가장 왼쪽에 있는 수의 인덱스를 찾아야 하니깐, 왼쪽 부분을 ..