lower_bound
- ์ฉ๋ : ์ฐพ์ผ๋ ค๋ key ๊ฐ๋ณด๋ค ๊ฐ๊ฑฐ๋ ํฐ ์ซ์๊ฐ ๋ฐฐ์ด ๋ช ๋ฒ์งธ์์ ์ฒ์ ๋ฑ์ฅํ๋์ง ์ฐพ๊ธฐ ์ํจ
- ์ฌ์ฉ ์กฐ๊ฑด : ํ์์ ์งํํ ๋ฐฐ์ด ํน์ ๋ฒกํฐ๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋์ด ์์ด์ผ ํจ
- lower_bound์ ๋ฐํํ์ Iterator ์ด๋ฏ๋ก ์ค์ ๋ก ๋ช ๋ฒ์งธ ์ธ๋ฑ์ค์ธ์ง ์๊ณ ์ถ๋ค๋ฉด, lower_bound ๊ฐ์์ ๋ฐฐ์ด ์ฒซ ๋ฒ์งธ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐฐ์ด์ ์ด๋ฆ์ ๋นผ ์ค์ผํจ.
1. array
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int arr[6] = { 1,2,3,4,5,6 };
cout << "lower_bound(6) : " << lower_bound(arr, arr + 6, 6) - arr;
// ๊ฒฐ๊ณผ -> lower_bound(6) : 5
}
2. vector
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
vector<int> arr = { 1,2,3,4,5,6,6,6 };
cout << "lower_bound(6) : " << lower_bound(arr.begin(), arr.end(), 6) - arr.begin();
// ๊ฒฐ๊ณผ -> lower_bound(6) : 5
}
upper_bound
- ์ฉ๋ : ์ฐพ์ผ๋ ค๋ key ๊ฐ์ ์ด๊ณผํ๋ ์ซ์๊ฐ ๋ฐฐ์ด ๋ช ๋ฒ์งธ์์ ์ฒ์ ๋ฑ์ฅํ๋์ง ์ฐพ๊ธฐ ์ํจ
- ์ฌ์ฉ ์กฐ๊ฑด : ํ์์ ์งํํ ๋ฐฐ์ด ํน์ ๋ฒกํฐ๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋์ด ์์ด์ผ ํจ
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
vector<int> arr = { 1,2,3,4,5,6 };
cout << "upper_bound(3) : " << upper_bound(arr.begin(), arr.end(), 3) - arr.begin();
// ๊ฒฐ๊ณผ -> upper_bound(3) : 3
}
'Algorithm ๐ง๐ปโ๐ป > Note' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++, ํ ํ๋ฆฟ] map find index (0) | 2022.08.23 |
---|---|
[C++, ํ ํ๋ฆฟ] ๋ค์ต์คํธ๋ผ (0) | 2022.05.28 |
[C++, ํ ํ๋ฆฟ] ํ๋ก์ด๋-์์ฌ (0) | 2022.05.13 |
[C++, ํ ํ๋ฆฟ] ์์ ๊ตฌํ๊ธฐ(์๋ผํ ์คํธ๋ค์ค์ ์ฒด) (0) | 2022.04.11 |
[C++, ์ ์ฉํ ๋ฌธ๋ฒ] ๋ฌธ์์ด ๋์๋ฌธ์ ๋ณํ (0) | 2022.04.10 |
[C++, ์ ์ฉํ ๋ฌธ๋ฒ] ํน์ ๋ฌธ์ ์นํ regex_replace (0) | 2022.04.09 |
๋๊ธ