๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Algorithm/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

2022.05.24 ใ€ŒLv.3 ์ž…๊ตญ์‹ฌ์‚ฌใ€

by GroovyArea 2022. 5. 24.
์š”์ƒˆ ํ”„๋กœ์ ํŠธ ๋น„์ค‘์ด ๋„ˆ๋ฌด ์ปธ๋˜์ง€๋ผ ์˜ค๋žœ๋งŒ์— ์‹œ๊ฐ„์ด ๋‚˜์„œ ์ฝ”ํ…Œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ ์ค‘์—์„œ ์ด๋ถ„ ํƒ์ƒ‰ (Binary Search)์„ ์ด์šฉํ•œ ๋ฌธ์ œ์ด๋‹ค. ์–ผํ• ๋ณด๋‹ˆ๊นŒ ์ถœ์ œ์œจ์ด ๋‚ฎ๋˜๋ฐ ๊ทธ๋ž˜๋„ ์ด๋ก  ์ƒ ์•Œ๊ณ  ๊ฐ€๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์ง์ ‘ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•„์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค.

 

์ด๋ถ„ ํƒ์ƒ‰ (Binary Search)

์ด๋ถ„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ์ตœ์†Œ, ์ตœ๋Œ€ ๊ฐ’์„ ์ •ํ•ด ๋‘๊ณ  ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ€๋ฉฐ ์ค‘๊ฐ„ ๊ฐ’์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ ํƒ์ƒ‰์„ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. 

์‹œ๊ฐ„ ๋ณต์žก๋„๋กœ O(logN)์„ ๊ฐ–๊ณ  ์žˆ๋Š” ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. 

 

https://programmers.co.kr/learn/courses/30/lessons/43238

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ž…๊ตญ์‹ฌ์‚ฌ

n๋ช…์ด ์ž…๊ตญ์‹ฌ์‚ฌ๋ฅผ ์œ„ํ•ด ์ค„์„ ์„œ์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ž…๊ตญ์‹ฌ์‚ฌ๋Œ€์— ์žˆ๋Š” ์‹ฌ์‚ฌ๊ด€๋งˆ๋‹ค ์‹ฌ์‚ฌํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฒ˜์Œ์— ๋ชจ๋“  ์‹ฌ์‚ฌ๋Œ€๋Š” ๋น„์–ด์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ์‹ฌ์‚ฌ๋Œ€์—์„œ๋Š” ๋™์‹œ์— ํ•œ

programmers.co.kr

๋ฌธ์ œ ์„ค๋ช…

n๋ช…์ด ์ž…๊ตญ์‹ฌ์‚ฌ๋ฅผ ์œ„ํ•ด ์ค„์„ ์„œ์„œ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ž…๊ตญ์‹ฌ์‚ฌ๋Œ€์— ์žˆ๋Š” ์‹ฌ์‚ฌ๊ด€๋งˆ๋‹ค ์‹ฌ์‚ฌํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ฒ˜์Œ์— ๋ชจ๋“  ์‹ฌ์‚ฌ๋Œ€๋Š” ๋น„์–ด์žˆ์Šต๋‹ˆ๋‹ค. ํ•œ ์‹ฌ์‚ฌ๋Œ€์—์„œ๋Š” ๋™์‹œ์— ํ•œ ๋ช…๋งŒ ์‹ฌ์‚ฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์•ž์— ์„œ ์žˆ๋Š” ์‚ฌ๋žŒ์€ ๋น„์–ด ์žˆ๋Š” ์‹ฌ์‚ฌ๋Œ€๋กœ ๊ฐ€์„œ ์‹ฌ์‚ฌ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋” ๋นจ๋ฆฌ ๋๋‚˜๋Š” ์‹ฌ์‚ฌ๋Œ€๊ฐ€ ์žˆ์œผ๋ฉด ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๊ทธ๊ณณ์œผ๋กœ ๊ฐ€์„œ ์‹ฌ์‚ฌ๋ฅผ ๋ฐ›์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์‚ฌ๋žŒ์ด ์‹ฌ์‚ฌ๋ฅผ ๋ฐ›๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ตœ์†Œ๋กœ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

์ž…๊ตญ์‹ฌ์‚ฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‚ฌ๋žŒ ์ˆ˜ n, ๊ฐ ์‹ฌ์‚ฌ๊ด€์ด ํ•œ ๋ช…์„ ์‹ฌ์‚ฌํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋‹ด๊ธด ๋ฐฐ์—ด times๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์‹ฌ์‚ฌ๋ฅผ ๋ฐ›๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์˜ ์ตœ์†Ÿ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

์ œํ•œ์‚ฌํ•ญ

  • ์ž…๊ตญ์‹ฌ์‚ฌ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‚ฌ๋žŒ์€ 1๋ช… ์ด์ƒ 1,000,000,000๋ช… ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๊ฐ ์‹ฌ์‚ฌ๊ด€์ด ํ•œ ๋ช…์„ ์‹ฌ์‚ฌํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ 1๋ถ„ ์ด์ƒ 1,000,000,000๋ถ„ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์‹ฌ์‚ฌ๊ด€์€ 1๋ช… ์ด์ƒ 100,000๋ช… ์ดํ•˜์ž…๋‹ˆ๋‹ค.

 

๋ฌธ์ œ๋ฅผ ๋ณด์•„ํ•˜๋‹ˆ ๋ฐฐ์—ด์„ ๋จผ์ € ์ˆœ์ฐจ์ ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ  ์ตœ์†Œ, ์ตœ๋Œ€ ๊ฐ’์„ ์ •์˜ํ•˜๋Š” ๊ฒŒ ์šฐ์„  ์ผ ๊ฒƒ ๊ฐ™๋‹ค.

๊ทธ ๋‹ค์Œ ์ด๋ถ„ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜์—ฌ ๋Œ€์†Œ ๋น„๊ต ํ›„ ์ผ์น˜ํ•˜๋Š” ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. 

 

 

๋ ˆ๋ฒจ 3์ด๋ผ ๊ธด์žฅ์„ ์ข€ ํ–ˆ๋Š”๋ฐ ๋ง‰์ƒ ๊ณต๋ถ€ํ–ˆ๋˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜๋ฉฐ ํ‘ธ๋‹ˆ ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐ๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค์–‘ํ•˜๊ฒŒ ํ‘ธ๋ ค๊ณ  ๋…ธ๋ ฅ์„ ์ข€ ํ•ด๋ด์•ผ๊ฒ ๋‹ค. 

๋ฐ˜์‘ํ˜•