-
728x90๋ฐ์ํ
์์ฒญ ๊ฐ์ : 03.์ด๋ถ ํ์ (Binary Search) -์์ฉํธ
์์ฒญ ๋ ์ง : 11/29/2021
์ค๋ ์์ฒญํ ๊ฐ์๋ ์ด๋ถ ํ์ ์์ฉํธ์ด๋ค. ๊ฐ์์์ ๋ฌธ์ ํ์ด๋ฅผ ๋ค์ด๋ดค๋๋ฐ ์์ง ํผ์ ๋ชปํ๊ฒ ์ด์ ์กฐ๊ธ ๋ ์๋ํด๋ด์ผํ ๊ฒ ๊ฐ๋ค.
๋งค๊ฐ ๋ณ์ ํ์ (Parametric Search)
- ์ค๋ฆ ์ฐจ์ ๋ณด์ฅ
- true / false ํํ์ ๋ฐฐ์ด
- ํน์ ์ธ๋ฑ์ค ๊ฐ O(T)์์ ๊ณ์ฐ ๊ฐ๋ฅ
ex : up/down ๊ฒ์
1~ 10000๊น์ง์ ์ซ์ ์ค์์ ํน์ ํ ์ซ์๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ฐพ๋ ๊ฒ์. ๋ง์ฝ ์ด ์ซ์๋ณด๋ค ํฌ๋ฉด yes, ์์ผ๋ฉด no
yes ์ธ ๊ฒฝ์ฐ : ํด๋น ์ซ์ ์ด์ ์ ์ซ์๋ค๋ ์ ๋ถ yes ์์ ์ถ์ธกํ ์ ์์
worst case scenario : ๋ชจ๋ ์ซ์๋ฅผ ์ ๋ถ ์ถ์ธก ํด ๋ณด๋ ๊ฒฝ์ฐ๋ก O(10000)
Generalize : worst case ๋ O(T)์ด๋ค์์ฃผ ํ๋ ์ค์
- yes/ no๊ฐ ์๋๋ฐ ๋งค๊ฐ ๋ณ์ ํ์์ ํ๋ ๊ฒฝ์ฐ
- ๋ถ๋ฑํธ๋ฅผ ํ๋ฆฌ๊ฒ ์ฌ์ฉ
- ๋ฒ์๊ฐ ํ๋ ธ์ ๋
๋งค๊ฐ ๋ณ์ ํ์์ ํค์๋
- -์ ์ต๋๊ฐ์ ๊ตฌํ์์ค
- -์ ์ต์๊ฐ์ ๊ตฌํ์์ค
๋ฐฑ์ค 2805 - ๋๋ฌด์๋ฅด๊ธฐ ๋ฌธ์
๋ฌธ์
์๊ทผ์ด๋ ๋๋ฌด M๋ฏธํฐ๊ฐ ํ์ํ๋ค. ๊ทผ์ฒ์ ๋๋ฌด๋ฅผ ๊ตฌ์ ํ ๊ณณ์ด ๋ชจ๋ ๋งํด๋ฒ๋ ธ๊ธฐ ๋๋ฌธ์, ์ ๋ถ์ ๋ฒ๋ชฉ ํ๊ฐ๋ฅผ ์์ฒญํ๋ค. ์ ๋ถ๋ ์๊ทผ์ด๋ค ์ง ๊ทผ์ฒ์ ๋๋ฌด ํ ์ค์ ๋ํ ๋ฒ๋ชฉ ํ๊ฐ๋ฅผ ๋ด์ฃผ์๊ณ , ์๊ทผ์ด๋ ์๋ก ๊ตฌ์ ํ ๋ชฉ์ฌ์ ๋จ๊ธฐ๋ฅผ ์ด์ฉํด์ ๋๋ฌด๋ฅผ ๊ตฌํ ๊ฒ์ด๋ค.
๋ชฉ์ฌ์ ๋จ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ด ๋์ํ๋ค. ๋จผ์ , ์๊ทผ์ด๋ ์ ๋จ๊ธฐ์ ๋์ด H๋ฅผ ์ง์ ํด์ผ ํ๋ค. ๋์ด๋ฅผ ์ง์ ํ๋ฉด ํฑ๋ ์ด ๋ ์ผ๋ก๋ถํฐ H๋ฏธํฐ ์๋ก ์ฌ๋ผ๊ฐ๋ค. ๊ทธ ๋ค์, ํ ์ค์ ์ฐ์ํด์๋ ๋๋ฌด๋ฅผ ๋ชจ๋ ์ ๋จํด๋ฒ๋ฆฐ๋ค. ๋ฐ๋ผ์, ๋์ด๊ฐ H๋ณด๋ค ํฐ ๋๋ฌด๋ H ์์ ๋ถ๋ถ์ด ์๋ฆด ๊ฒ์ด๊ณ , ๋ฎ์ ๋๋ฌด๋ ์๋ฆฌ์ง ์์ ๊ฒ์ด๋ค. ์๋ฅผ ๋ค์ด, ํ ์ค์ ์ฐ์ํด์๋ ๋๋ฌด์ ๋์ด๊ฐ 20, 15, 10, 17์ด๋ผ๊ณ ํ์. ์๊ทผ์ด๊ฐ ๋์ด๋ฅผ 15๋ก ์ง์ ํ๋ค๋ฉด, ๋๋ฌด๋ฅผ ์๋ฅธ ๋ค์ ๋์ด๋ 15, 15, 10, 15๊ฐ ๋ ๊ฒ์ด๊ณ , ์๊ทผ์ด๋ ๊ธธ์ด๊ฐ 5์ธ ๋๋ฌด์ 2์ธ ๋๋ฌด๋ฅผ ๋ค๊ณ ์ง์ ๊ฐ ๊ฒ์ด๋ค. (์ด 7๋ฏธํฐ๋ฅผ ์ง์ ๋ค๊ณ ๊ฐ๋ค) ์ ๋จ๊ธฐ์ ์ค์ ํ ์ ์๋ ๋์ด๋ ์์ ์ ์ ๋๋ 0์ด๋ค.
์๊ทผ์ด๋ ํ๊ฒฝ์ ๋งค์ฐ ๊ด์ฌ์ด ๋ง๊ธฐ ๋๋ฌธ์, ๋๋ฌด๋ฅผ ํ์ํ ๋งํผ๋ง ์ง์ผ๋ก ๊ฐ์ ธ๊ฐ๋ ค๊ณ ํ๋ค. ์ด๋, ์ ์ด๋ M๋ฏธํฐ์ ๋๋ฌด๋ฅผ ์ง์ ๊ฐ์ ธ๊ฐ๊ธฐ ์ํด์ ์ ๋จ๊ธฐ์ ์ค์ ํ ์ ์๋ ๋์ด์ ์ต๋๊ฐ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋๋ฌด์ ์ N๊ณผ ์๊ทผ์ด๊ฐ ์ง์ผ๋ก ๊ฐ์ ธ๊ฐ๋ ค๊ณ ํ๋ ๋๋ฌด์ ๊ธธ์ด M์ด ์ฃผ์ด์ง๋ค. (1 โค N โค 1,000,000, 1 โค M โค 2,000,000,000)
๋์งธ ์ค์๋ ๋๋ฌด์ ๋์ด๊ฐ ์ฃผ์ด์ง๋ค. ๋๋ฌด์ ๋์ด์ ํฉ์ ํญ์ M๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ธฐ ๋๋ฌธ์, ์๊ทผ์ด๋ ์ง์ ํ์ํ ๋๋ฌด๋ฅผ ํญ์ ๊ฐ์ ธ๊ฐ ์ ์๋ค. ๋์ด๋ 1,000,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ ์ ์ ๋๋ 0์ด๋ค.
์ถ๋ ฅ
์ ์ด๋ M๋ฏธํฐ์ ๋๋ฌด๋ฅผ ์ง์ ๊ฐ์ ธ๊ฐ๊ธฐ ์ํด์ ์ ๋จ๊ธฐ์ ์ค์ ํ ์ ์๋ ๋์ด์ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ค.
ํด์
์ ๋ฌธ์ ๋ parametric search์ ๋ํ์ ์ธ ๋ฌธ์ ๋ก, ๋ฆฌ์๋ฉ ํด๋ณด๋ฉด,
์ด๋ค ๋์ด๋ก ์๋์ ๋, ์ํ๋ ๋์ด๋งํผ ์ป์ ์ ์๋๊ฐ ? (yes/no)
๋ฌธ์ ๋ก ๋ณํํ ์ ์๋ค.๋ํ, ๋๋ฌด์ ๋์ด ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ YES/NO๋ฅผ ์ฑ์ ์ ๋ ์ด๋ฏธ ์ ๋ ฌ์ด ๋์ด์๋ค.
์ด๋ฅผ ํ ๋๋ก ๋ฌธ์ ๋ฅผ ํ๋ฉด parameteric search ๋ฐฉ์์ผ๋ก ์ ๊ทผ ํด ๋ณผ ์ ์๋ค.
ํจ์คํธ์บ ํผ์ค ํ๊ธ ์ฑ๋ฆฐ์ง ๋ฐ๋ก๊ฐ๊ธฐ๐ https://bit.ly/3FVdhDa
์๊ฐ๋ฃ 100% ํ๊ธ ์ฑ๋ฆฐ์ง | ํจ์คํธ์บ ํผ์ค
๋ฑ 5์ผ๊ฐ ์งํ๋๋ ํ๊ธ์ฑ๋ฆฐ์ง๋ก ์๊ฐ๋ฃ 100% ํ๊ธ๋ฐ์ผ์ธ์! ๋ ๋ฆ๊ธฐ์ ์ ์๊ธฐ๊ณ๋ฐ ๋ง์ฐจ ํ์น!
fastcampus.co.kr
๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค ํ๊ธ ์ฑ๋ฆฐ์ง ์ฐธ์ฌ๋ฅผ ์ํด ์์ฑ๋์์ต๋๋ค
728x90๋ฐ์ํ'๐ STUDY > FASTCAMPUS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง ์ต์ข ํ๊ธฐ (0) 2021.12.08 ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 30์ผ์ฐจ (0) 2021.11.30 ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 28์ผ์ฐจ (1) 2021.11.28 ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 27์ผ์ฐจ (0) 2021.11.27 ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 26์ผ์ฐจ (0) 2021.11.26