๋์ ํ๋ ๋น์ ์๋ฆ๋ต๋ค!
์ด๋ถํ์์ ์์ด์ ์ด๋์ ๋๋ ์๋ค๊ณ ์๋งํ ๋๋จธ์ง, ๊ณจ๋5๋ฅผ ํ์ด๋ณด๊ณ ์ถ์๋ค. ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์๋ฐ ํฌ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ๋ถ๋ฅ๊ฐ ๋์ด์์๋ค. ํฌํฌ์ธํฐ์ ๋ํ ๊ฐ๋ ์ ์ฐธ์กฐ๋ธ๋ก๊ทธ์์ ์ ๋์์๋ค.
์ญ์๋ ์ด ํฌ๊ธฐํ๋ ์ต๊ด์ ๋ฒ๋ฆฌ๊ธฐ๊ฐ ํ๋ค๋ค.
์๋๋ ํ์๊ฐ๋ง ํ๊ณ ์๋๋ฉด ๊ณผ๊ฐํ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ๋ณผ๋ฌ๋๋ฐ ์ด๋ฒ์๋ ๋ด๊ฐ ํ๋ ๋ฐฉ๋ฒ์ด ๋น์ฐํ ๋ง๋๊ฑฐ ๊ฐ์์ ์ ํ๋ ธ๋์ง ์กฐ๊ธ๋ง ๋ ๋ณด์๊ณ ํ๋ค๊ฐ 2์๊ฐ๊ฐ๊น์ด ๋ถ์ก๊ฒ ๋์๋ค. ์ด ๋๋ ํฌ ํฌ์ธํฐ ๊ฐ๋
๋ ๋ชฐ๋ผ์ ์ด๋ถํ์์ while๋ฌธ์ผ๋ก ๋๋ฆฌ๋ ๊ฒ์ด์๋๋ฐ, ๊ฒฐ๊ตญ ํด๊ฒฐํ์ง ๋ชปํ๊ณ ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋๋ฅผ ๋ดค๋ค. ์์ฆ ๋ด๊ฐ ์ด์ํ ํ๋ฌด๋์ด ํด๋ต๋ฒ์ ์ ์ค๋ช
ํด ์ฃผ์
จ๋ค.
ํฌ ํฌ์ธํฐ์ ๋ํ ๊ฐ๋
์ ์ ์์๋ค๋ฉด ์ด๋ฒ ๊ณจ๋ ๋ฌธ์ ๋ ํผ์์ ํ์์ ๊ฒ๋ ๊ฐ์ง๋ง ๋ค์๊ธฐํ๋ก ๋จ๊ฒจ๋๊ณ ํ์ตํ๋ ๊ณผ์ ์ด ๋๋ค. mid๊ฐ์ ๋์ ํ๋ ๋ค๋ฅธ ๋ณ์๋ฅผ ์ด์ฉํ๋๊ฒ์ด ์ค์ํ๋ค๊ณ ๋ฐฐ์ ๋ค.
๋จผ๊ฐ ์์ฌ์์ ๋ ํฌ์ธํฐ๋ฅผ ๋ ๋ณด๋ค๋ณด๋ ์ด๋ฑ๋ถ/์ค๋ฑ๋ถ/๊ณ ๋ฑ๋ถ ๋ณ๋ก ๊ฐ๊ฐ ๋ ํฌ์ธํฐ ๋ฌธ์ ๊ฐ ์์๋ค. ์ด๋ฑ๋ถ ๋ฌธ์ ๋ ์์ ๊ฐ์์ ์ฝ๋ ๋ณต๋ถ์ผ๋ก ํ์๊ณ ๊ณ ๋ฑ๋ถ๋ ์กฐ๊ธ ๋ฌ๋๋ค.
์ธ ์ฉ์ก
์ด ๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ ๋ด๊ฐ ๋งจ ์ฒ์ ์ด ๋ฌธ์ ๋ฅผ ์ ๊ทผํ๋ ค๋ ๋ฐฉ์๊ณผ ๋งค์ฐ ์ ์ฌํ๋ค. ๋ด๊ฐ ์ ๊ทผํ๋ ค๋ ๋ฐฉ์์ด ํ๋๋ฅผ while๋ฌธ์ผ๋ก ์์ฐจ์ ์ผ๋ก ์ ํ๊ณ ๋๋จธ์ง๋ฅผ ์ด๋ถํ์์ผ๋ก ํ๋ ค๋๊ฒ์ด์๋๋ฐ ๊ทธ๋ฐ๋ฉด์์ ์ด ๋ฌธ์ ๋ํ ์ฒซ๋ฒ์งธ ์ฉ์ก๋ง ์ ํ๊ณ ๋๋จธ์ง๋ ๊ธฐ์กด ์ฝ๋๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ผ๊ฐ๋ฉด ๋๋ ๊ฒ์ด์๋ค. ํน์๋ ์ถ์ด ๊ฐ๋จํ๊ฒ ์๊ณ ๋ฆฌ์ฆ ์์ ํ ์ ์ถํ๋๊น
๋ฐ๋จ!
ํ๋ฒ๋ง์ ๋ฌธ์ ๋ฅผ ๋ง์ถ์ด์ ๋๋ฌด ์ข์๋ค. ํ๋๋ฅผ ํ๋๊น ์ด๋ ๊ฒ ์ ์ฉ์ด ๋ผ์ ๋๋ฆ ๋ฟ๋ฏํ๋ค.
๋ง์ง๋ง์ผ๋ก๋ ์ ๋ฒ์ฃผ์ ๋ชปํ์๋ ๋ฌธ์ ์ ๋ํด์ ๋ค์ ํ์๋ค. ๊ฒฐ๊ตญ์ ์ธํ๊ฐ์ ๋ฐ๋๋ก ๋ฃ์ด์ ๋๋ runtime-error์์ง๋ง ๊ทธ๊ฑธ ๋ชป์ฐพ๊ณ ํ์ฐธ ๋ณด๋ฉด์ ์คํ๋ ค lower/upper Bound์ ๊ฐ๋ ์ ๊ณต๋ถํ๋ค.
๊ฐ๋จํ๊ฒ ํํํ์๋ฉด
var arr = [1,4,6,6,7,9] //์์
var key1 = 6
var key2 = 3
var ansIndex1 = -1 //ํค๊ฐ arr์ ๋ค์ด๊ฐ ์ธ๋ฑ์ค ๊ฐ
var ansIndex2 = -1
//์ ๊ฐ๊ฐ ์ฐพ์ ๋
//lowerBound๋ก ์ฐพ์ ์
ansIndex1 = 2
ansIndex2 = 1
//upperBound๋ก ์ฐพ์ ์
ansIndex1 = 4
ansIndex2 = 2
๋๋ ์ฐ๋ฉด์ ์ดํด๊ฐ ์กฐ๊ธ์ฉ ๋๋ ๊ฒ ๊ฐ๋ค.
๋ด์ผ ํ๋ก์ ํธ๋ฅผ ์ํด์ ๊ณต๋ถ๋ฅผ ํด์ผํ๋๋ฐ ์์ง๋ชป๋ณด๊ณ 12์๊ฐ ๋ค๋์ด์ ๋ณผ ๊ฒ ๊ฐ๋ค ใ
ใ
์ต์ํ ์ด๋์ ๋ ์์์ผ ํ์์๊ฒ ํผํด๋ฅผ ๋ผ์น์ง ์์ผ๋๊น ์ข ๋ณด๋ค๊ฐ ์์ผ๊ฒ ๋ค.