binary search
-
[BaekJoon] 2295๋ฒ ์ธ ์์ ํฉSW Test/BaekJoon 2021. 8. 22. 21:41
์ด ๊ธ์ C++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์ด ๋ฌธ์ ๋ฅผ 3์ค for๋ฌธ์ ์ฌ์ฉํ๋ฉด ํฉ์ ๊ตฌํ๊ณ ํฉ์ด ์กด์ฌํ๋์ง ํ๋จํ์ฌ ์๊ฐ๋ณต์ก๋๊ฐ O(N4)์ด๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. ๋ง์ง๋ง ํฉ์ด ์กด์ฌํ๋์ง๋ฅผ ์ด๋ถํ์์ ์ฌ์ฉํ๋๋ผ๋ ์๊ฐ๋ณต์ก๋๊ฐ O(N3logN)์ด๋ผ์ ์๊ฐ์ด๊ณผ๊ฐ ๋ถ๊ฐํผํฉ๋๋ค. ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ์ด๋ถํ์์ ์ฌ์ฉํ๋, ์๋ก์ด ๊ธฐ๋ฒ์ ํ์ฉํด์ผ ํฉ๋๋ค. ์ฆ 2๊ฐ์ ์ซ์์ ํฉ์ ํ๋์ ๋ฐฐ์ด์ ๋ง๋ญ๋๋ค. ์ด ๋์ ์๊ฐ๋ณต์ก๋๋ O(N2)์ ๋๋ค. ์ดํ ์ฒ์ ๋ฐฐ์ด์ ๋ ๊ฐ์ ์ฐจ์ด๊ฐ 2๊ฐ์ ์ซ์์ ํฉ ๋ฐฐ์ด์ ์กด์ฌํ๋์ง ํ์ธํ๋ฉด ๋ฉ๋๋ค. O(N2logN)์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค. ex) a1+a2+a3 = a4 ->, a4 - a3 = a1+a2 #include #include #includ..
-
[BaekJoon] 1654๋ฒ ๋์ ์๋ฅด๊ธฐSW Test/BaekJoon 2021. 8. 22. 21:34
์ด ๊ธ์ C++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์ด ๋ฌธ์ ๋ ์ด๋ถํ์์ ํ์ฉํ Parametric Search ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. 1๋ถํฐ ์ต๋ ๊ธธ์ด๋ฅผ ์์ชฝ์ผ๋ก ํ์ฌ ์ ๋ฐ์ฉ ๊ธธ์ด์ผ ๊ฒฝ์ฐ์ ์ํ๋ ๋์ ์ ๊ฐฏ์๊ฐ ๋๋์ง ํ์ธํ์ฌ s์ e๋ฅผ ์กฐ์ ํฉ๋๋ค. #include #include #include using namespace std; int main(){ int n,k; cin>>n>>k; int arr[10000]; for(int i=0;i>arr[i]; } long long s = 1; long long e = 1; for(int i=1;i
-
[BaekJoon] 18870๋ฒ ์ขํ์์ถSW Test/BaekJoon 2021. 8. 22. 21:23
์ด ๊ธ์ C++๋ก ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ๋ฌธ์ ์์ ํ์ด ์ฒ์ ์๊ฐํ์ ๋ ์ ๋ ฌ ํ map์ ํตํด ์ค๋ณต์ ๊ฑฐํ๊ณ ๊ฐ์ key๋ก 0๋ถํฐ ํ๋์ฉ ๋ด๊ธฐ๋ count๋ฅผ value๋ก ํ์ฌ ์ถ๊ฐํ ํ์ด๋ฅผ ์์ฑํ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด map์ insert์ ์๊ฐ๋ณต์ก๋๋ O(logN), ์ดํ ์ ๋ ฌ์ ๋ํ ์๊ฐ๋ณต์ก๋ O(NlogN)์ด ๊ฑธ๋ ค ์ ์ฒด ์์ ๋ํด์ ํ์ํ ๋์ ์๊ฐ๋ณต์ก๋๋ O(N2logN)์ ๋๋ค. ๋ค์ ํ์ด๋ ๋ฌด์กฐ๊ฑด ์๊ฐ์ด๊ณผ๊ฐ ๋ํ๋๊ฒ ๋๋๋ฐ map์ด ์๋ unordered_map์ ์ฌ์ฉํ๋ฉด ์ด์ง ๊ฒ์ ํธ๋ฆฌ๊ฐ ์๋ ํด์ฌ ํ ์ด๋ธ๋ก ๊ตฌํ์ด ๋์ด O(1)๋ง์ ํต๊ณผํ ์ ์์ต๋๋ค. #include #include #include #include using namespace std; int main(){ int arr[1..