๐ง ์ต์ ํ ๋ฌธ์ ๋ฅผ ์ฌ๋ฌ๋ฒ์ ๊ฒฐ์ ๋ฌธ์ (์ ํน์ ์๋์ค)๋ก ๋ฐ๊พธ์ด ์ด๋ถํ์์ผ๋ก ํด๊ฒฐํ๋ ๊ธฐ๋ฒ
→ ํน์ ํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ฅ ์๋ง์ ๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ๋ ์ต์ ํ ๋ฌธ์ - ์ฌ๊ธฐ์ ์ต์ ํ๋, ์ด๋ค ๊ฐ์ ์ต๋ํ ๋์ด๊ฑฐ๋ ๋ฎ์ถ ๋ ์ฌ์ฉ
๐ง
โ Parametric Search๋ก ๊ตฌํ๊ณ ์ ํ๋ ๊ฐ์ ์ด๋ถํ์์ผ๋ก ์ฆ/๊ฐ ๋ฐ๊พธ๋ฉฐ YES/NO ์ฌ๋ถ ํ์ธ
โก ๊ฒฐ์ ๋ฌธ์ ๋ฅผ ๋ง์กฑํ๊ณ ๋ง์กฑํ์ง ์์์ ๋ฐ๋ผ ์ด๋ถํ์ ๋ฒ์๋ฅผ end๋ฅผ mid-1 ๋๋ start๋ฅผ mid+1๋ก ์ค์ ํด ์ ๋ฐ์ผ๋ก ์ค์
โ ํ์์ ๋ฒ์๊ฐ log2N์ฉ ์ค์ด๋๋ฏ๋ก 1์ต์ด ๋์ด๊ฐ๋ ๋ฒ์๋ผ ํ๋๋ผ๋ ๋งค์ฐ ํจ๊ณผ์ ์ธ ์๊ฐ ๋ด์ ํ์ ๊ฐ๋ฅ โ
โ BOJ 3079 ์ ๊ตญ์ฌ์ฌ(๊ณจ๋5)
: ์ ๊ตญ์ฌ์ฌ๋์ ๊ฐ์๊ฐ ์ฃผ์ด์ง๊ณ , ๋ฐฉ๋ฌธํ ์ธ์ M์ด ์ฃผ์ด์ง ์ํ์์ ์ ๊ตญ์ฌ์ฌ๋ฅผ ๋ฐ๋ ์๊ฐ x์ ์ต์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์
→ ์์์๊ฐ์ x, ํด๋น ์์์๊ฐ ๋ด์ ์์ฉํ ์ ์๋ ์ต๋์ธ์์ y๋ผ ํ๋ฉด x์ y๋ ๋น๋ก ๊ด๊ณ
→ x๋ฅผ ์ค์ด๋ฉด์ ํด๋น y๊ฐ์ด ๋ฐฉ๋ฌธํ ์ธ์ M์ ์์ฉํ ์ ์๋ ์ง(์ฆ y≥M) ํ์ธ: ์ฆ ์ด๋ถํ์์ผ๋ก x๋ฅผ ์ฐพ์ผ๋ฉด์ y≥M์ธ ์ต์ x ํ์
โก BOJ 2110 ๊ณต์ ๊ธฐ ์ค์น(๊ณจ๋4)
: ์ง์ ์ขํ๊ฐ ์ฃผ์ด์ง๊ณ (์ค๋ณต x) ๊ณต์ ๊ธฐ ๊ฐ์ C๊ฐ ์ฃผ์ด์ง ์ํ์์ ๊ณต์ ๊ธฐ๋ฅผ ๊ฐ์ง ์ง ์ฌ์ด์ ๊ฑฐ๋ฆฌ x์ ์ต๋๊ฐ์ ๊ตฌํ๋ ๋ฌธ์
→ ๊ณต์ ๊ธฐ๋ฅผ ๊ฐ์ง ์ง ์ฌ์ด์ ์ต์ ์ธ์ ๊ฑฐ๋ฆฌ๋ฅผ x, ์ค์นํ ์ ์๋ ๊ณต์ ๊ธฐ์ ๊ฐ์๋ฅผ y๋ผ ํ๋ฉด, x์ y๋ ๋ฐ๋น๋ก ๊ด๊ณ
→ x๋ฅผ ์ค์ด๋ฉด์ ๊ทธ๋ฆฌ๋๋ก ๊ตฌํ y๊ฐ ์ฃผ์ด์ง ๊ณต์ ๊ธฐ์ ๊ฐ์ C๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์ง ํ์ธ: ์ฆ ์ด๋ถํ์์ผ๋ก x๋ฅผ ์ฐพ์ผ๋ฉด์ y≥C์ธ ์ต์ x ํ์
(์ ์ฒซ๋ฒ์งธ ์ง๋ถํฐ y ์ธก์ ์ ์์ํ๋์ง ์ฆ๋ช ํ์)
โข BOJ 2343 ๊ธฐํ ๋ ์จ(์ค๋ฒ 1)
: ๊ฐ์์ ๊ธธ์ด๊ฐ ์ฃผ์ด์ง๊ณ ๋ธ๋ฃจ๋ ์ด์ ๊ฐ์ M์ด ์ฃผ์ด์ง ์ํ์์ ์ฌ๋ฌ ๋ฌถ์ํฉ์ ์ต๋๊ฐ ๋ธ๋ฃจ๋ ์ด์ ํฌ๊ธฐ x ์ต์๊ฐ์ ๊ตฌํ๋ ๋ฌธ์
→ ๋ธ๋ฃจ๋ ์ด์ ํฌ๊ธฐ๋ฅผ x, ๋ธ๋ฃจ๋ ์ด์ ๊ฐ์๋ฅผ y๋ผ ํ๋ฉด x์ y๋ ๋ฐ๋น๋ก ๊ด๊ณ
→ x๋ฅผ ์ค์ด๋ฉด์ ๊ทธ๋ฆฌ๋๋ก ๊ตฌํ y๊ฐ ์ฃผ์ด์ง ๋ธ๋ฃจ๋ ์ด์ ๊ฐ์ M๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ง ํ์ธ: ์ฆ ์ด๋ถํ์์ผ๋ก x๋ฅผ ์ฐพ์ผ๋ฉด์ y≤M์ธ ์ต์ x ํ์
: ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๊ณ ๋น๋ก/๋ฐ๋น๋ก ๊ด๊ณ ํ์ธ → ๊ฐ๋ฅ/๋ถ๊ฐ๋ฅ ์์ญ ํ์ธ → ans update ์ผ์ด์ค ํ์ธ
๐ง ์ ๋ฆฌ
โ ์ต์ ์ ๊ฐ์ ๊ตฌํ๊ณ ์ ํ๋ x / ์ด์ ๋ฐ๋ผ ํ๋ฐฉํฅ์ผ๋ก ์ฆ/๊ฐํ๋ y ํ์ธ(y๋ฅผ ํ์ ํ๋๊ฒ ์ด๋ ค์)
→ x๊ธฐ๋ฐ y๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์์ greedy ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉ๋๊ธฐ๋ ํจ
→ ๋ํ x์ y๊ฐ ํ ๋ฐฉํฅ์ผ๋ก ํ๋ฅด๋ ๋น๋ก/๋ฐ๋น๋ก ๊ด๊ณ์ธ์ง๋ ํ์ ํด์ผ ํจ. ํด๋น ๊ด๊ณ๊ฐ ์ฑ๋ฆฝ์ด ์๋๋ค๋ฉด ์ด๋ถํ์ ๋ถ๊ฐ๋ฅ
โก ์ด๋ถํ์์ start, end ์ ์ ํ ์ ํ๊ธฐ(start์ end ๋ชจ๋ ๋ฌธ์ ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ต์๊ฐ, ์ต๋๊ฐ์ผ๋ก ์ค์ )
โข Yes/NO์ธ ๊ฒฝ์ฐ์ ์ด๋ถ๋ฒ์ ์ธ ์ํฉ์ ์ ํํ ๊ธฐ์ตํ๊ณ ๋ ์ํฉ ์ค ๋ต์ด ๊ฐ๋ฅํ ์ํฉ์ผ ๋ ans ์ฃผ๊ธฐ์ update
โฃ ์ต์ข ans ๋ณ์ ์ถ๋ ฅ
'Computer Science > Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐LIS(Longest Increasing Subsequence) O(n^2)/O(nlogn) (0) | 2024.01.06 |
---|---|
๐กKadane's Algorithm (0) | 2024.01.03 |
2๏ธโฃBipartite Graph (1) | 2023.12.21 |
๐ Optimal Page Replacement Algorithm (1) | 2023.10.18 |
๐กNext Permutation / Previous Permutation (0) | 2023.08.16 |
๋๊ธ