Notice
Recent Posts
Recent Comments
Link
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ์๋ฎฌ๋ ์ด์
- Dijkstra
- ์ฐ์ ์์ํ
- ์กฐํฉ
- Union Find
- ํ๋ก์ด๋์์
- ๊ทธ๋ฆฌ๋
- ๋ฐฑํธ๋ํน
- ์ธ๊ทธ๋จผํธํธ๋ฆฌ
- ํธ๋ผ์ด
- dp
- ์ด์งํธ๋ฆฌ
- ์์ด
- ํ์๊ฐ์
- BFS
- ์ฌ๊ท
- ๊ตฌํ
- ํฌํฌ์ธํฐ
- ๋นํธ๋ง์คํน
- ๋ถ๋ถ์งํฉ
- ์๋ฃ๊ตฌ์กฐ
- Django
- ๋ค์ต์คํธ๋ผ
- upperbound
- Floyd
- dfs
- ์นด์นด์ค
- LowerBound
- ์ด๋ถํ์
- PriorityQueue
Archives
- Today
- Total
J
upper bound, lower bound : ์ด๋ถํ์ ๋ณธ๋ฌธ
๐ Problem Solving/๐ฅ Algorithm
upper bound, lower bound : ์ด๋ถํ์
snowball๐ฐ 2023. 4. 3. 12:09๐ Lower Bound(์๊ณ)
์ ๋ ฌ๋์ด ์๋ ๋ฐ์ดํฐ set์์ K๊ฐ ์ด์์ด ์ฒ์ ๋ฐ๊ฒฌ๋๋ ์์น๋ฅผ ์๋ฏธํ๋ค.
๐ Upper Bound(ํ๊ณ)
์ ๋ ฌ๋์ด ์๋ ๋ฐ์ดํฐ set์์ K๊ฐ๋ณด๋ค ํฐ ๊ฐ์ด ์ฒ์ ๋ฐ๊ฒฌ๋๋ ์์น๋ฅผ ์๋ฏธํ๋ค.
๐ก ์๋ฅผ ๋ค์ด
1 2 2 3 3 3 4 5 ์ ๋ฐ์ดํฐ set์์
lower bound(3) = 3, upper bound(3) = 6
@ ๋ฐ์ดํฐ set์ index๋ 0์์๋ถํฐ, lower bound(์ฐพ๊ณ ์ ํ๋ ์ซ์ = K)
โ ์ด๋ถ ํ์์ ์ด์ฉํ์ฌ upper bound, lower bound๋ฅผ ๊ตฌํด ๋ณด์!
## lower bound
int start = 0; int end = N-1;
while(start <= end) {
int mid = (start + end) / 2;
if(set[mid] < K) start = mid + 1;
else end = mid - 1;
}
System.out.println(start);
์ด๋, start๋ K๊ฐ์ด ๊ฐ์ฅ ์ฒ์์ผ๋ก ๋์ค๋ ๊ณณ! (index)
## upper bound
int start = 0; int end = N-1;
while(start <= end) {
int mid = (start + end) / 2;
if(set[mid] <= K) start = mid + 1;
else end = mid - 1;
}
System.out.println(end);
์ด๋, end๊ฐ K๊ฐ์ด ๊ฐ์ฅ ๋ง์ง๋ง์ผ๋ก ๋์ค๋ ๊ณณ!
๐ก ์ด๋ถํ์์ ๋ ๊ทธ๋ฃน์ ์ด๋ป๊ฒ ๋๋๋๋๊ฐ ๊ฐ์ฅ ์ค์ํ๋ค.
lower bound๋ (์์) (ํฌ๊ฑฐ๋ ๊ฐ์)์ผ๋ก ๋๋์๊ณ upper bound๋ (์๊ฑฐ๋ ๊ฐ์) (ํฐ) ์ผ๋ก ๋๋์๋ค.
์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฐ์ ‘๊ฐ์’์ ํฌํจ๋์ด ์๋ค!
lower bound๋ ๊ฒฐ๊ตญ ๋ ๊ทธ๋ฃน์ ๋๋๋ ๊ฐ์์ ์ข ๋ฃํ๊ฒ ๋๋๋ฐ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฐ์ ํฌ๊ฑฐ๋ ๊ฐ์ ์ชฝ(end)์ ํฌํจ๋์ด ์๋ค. start = end + 1์์ ์ข ๋ฃ๋๊ธฐ ๋๋ฌธ์ start์ ๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฐ์ด ๋๋ค.
upper bound๋ start์ ๊ฐ์ด ๋๋ค. ๊ทธ๋ฌ๋ start๋ ๋ง์ง๋ง์ +1์ด ๋์ด ๋์ค๊ธฐ ๋๋ฌธ์ end์ ๊ฐ์ด ์ ๋ต์ด ๋๋ค.
## ๋ฌธ์ ์ถ์ฒ
https://www.acmicpc.net/problem/2143
2143๋ฒ: ๋ ๋ฐฐ์ด์ ํฉ
์ฒซ์งธ ์ค์ T(-1,000,000,000 ≤ T ≤ 1,000,000,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ n(1 ≤ n ≤ 1,000)์ด ์ฃผ์ด์ง๊ณ , ๊ทธ ๋ค์ ์ค์ n๊ฐ์ ์ ์๋ก A[1], …, A[n]์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ m(1 ≤ m ≤ 1,000)์ด ์ฃผ์ด์ง๊ณ , ๊ทธ
www.acmicpc.net
Comments