[JavaScript/section 7] 10 - ์ด๋ถ ๊ฒ์
ยท
Algorithm/์ธํ๋ฐ(inflearn)
๐ 10 - ์ด๋ถ ๊ฒ์ ์์์ N๊ฐ์ ์ซ์๊ฐ ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค. N๊ฐ์ ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๋ค์ N๊ฐ์ ์์ค ํ ๊ฐ์ ์์ธ target์ด ์ฃผ์ด์ง๋ฉด ์ด๋ถ ๊ฒ์์ผ๋ก target์ด ์ ๋ ฌ๋ ์ํ์์ ๋ช ๋ฒ์งธ์ ์๋์ง ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋จ, ์ค๋ณต๊ฐ์ ์กด์ฌํ์ง ์๋๋ค. ์ด๋ถ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ด๋โ ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ํน์ ํ ๊ฐ์ ์์น๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ด๋ถ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๋ O(logN)์ผ๋ก ์์ฐจ ๊ฒ์์ ์๊ฐ ๋ณต์ก๋ O(N)์ ๋นํ๋ฉด ์๋์ ์ผ๋ก ๋น ๋ฅธ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ ์ํ๋ค. ๋ค์ ํ์ด ๋ฐฉ๋ฒ์ ๋ณด๋ฉด ๊ทธ ์ด์ ๋ฅผ ์ ์ ์์ ๊ฒ์ด๋ค. ํ์ด ๋ฐฉ๋ฒ ๋ฐฐ์ด์ ์ ๋ ฌํ๋ค. ์ด๋ถ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ด๋ค. ๋ฐฐ์ด์ ์ฒ์(start)๊ณผ ๋(end)์ ์ธ๋ฑ์ค๋ฅผ ๋ํ ํ 2๋ก ๋๋์ด ๋ฐฐ์ด์ ์ค๊ฐ ์ธ๋ฑ์ค(mid)..