Computer Science/Algorithms

๐Ÿ”ฌ Parametric Search

metamong 2023. 12. 31.

๐Ÿง ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ์˜ ๊ฒฐ์ •๋ฌธ์ œ(์˜ˆ ํ˜น์€ ์•„๋‹ˆ์˜ค)๋กœ ๋ฐ”๊พธ์–ด ์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๊ธฐ๋ฒ•

 

→ ํŠน์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฐ€์žฅ ์•Œ๋งž์€ ๊ฐ’์„ ๋น ๋ฅด๊ฒŒ ์ฐพ๋Š” ์ตœ์ ํ™” ๋ฌธ์ œ - ์—ฌ๊ธฐ์„œ ์ตœ์ ํ™”๋ž€, ์–ด๋–ค ๊ฐ’์„ ์ตœ๋Œ€ํ•œ ๋†’์ด๊ฑฐ๋‚˜ ๋‚ฎ์ถœ ๋•Œ ์‚ฌ์šฉ

 

๐Ÿง

โ‘  Parametric Search๋กœ ๊ตฌํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฐ’์„ ์ด๋ถ„ํƒ์ƒ‰์œผ๋กœ ์ฆ/๊ฐ ๋ฐ”๊พธ๋ฉฐ YES/NO ์—ฌ๋ถ€ ํ™•์ธ

 

โ‘ก ๊ฒฐ์ •๋ฌธ์ œ๋ฅผ ๋งŒ์กฑํ•˜๊ณ  ๋งŒ์กฑํ•˜์ง€ ์•Š์Œ์— ๋”ฐ๋ผ ์ด๋ถ„ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ end๋ฅผ mid-1 ๋˜๋Š” start๋ฅผ mid+1๋กœ ์„ค์ •ํ•ด ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์ž„

 

โ˜… ํƒ์ƒ‰์˜ ๋ฒ”์œ„๊ฐ€ log2N์”ฉ ์ค„์–ด๋“œ๋ฏ€๋กœ 1์–ต์ด ๋„˜์–ด๊ฐ€๋Š” ๋ฒ”์œ„๋ผ ํ•˜๋”๋ผ๋„ ๋งค์šฐ ํšจ๊ณผ์ ์ธ ์‹œ๊ฐ„ ๋‚ด์— ํƒ์ƒ‰ ๊ฐ€๋Šฅ โ˜…

์™ผ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ผ์ •ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๋‘ ๋ณ€์ˆ˜์˜ ๊ด€๊ณ„๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค / ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ผ์ •ํ•œ ๋ฐฉํ–ฅ์ด ์•„๋‹ˆ๋ฉด x


โ‘  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 ๋ณ€์ˆ˜ ์ถœ๋ ฅ


BaaaarkingDog

 

 

 

'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

๋Œ“๊ธ€