๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Book TIL

๋…ธ๋งˆ๋“œ์ฝ”๋” ๋ถํด๋Ÿฝ ์žกํ•™์‚ฌ์ „ Day07 - ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

by vividmin 2023. 1. 20.
320x100

๋…ธ๋งˆ๋“œ์ฝ”๋” ๋ถํด๋Ÿฝ ์žกํ•™์‚ฌ์ „ day07

 

 

๐Ÿ“š ๋ฒ”์œ„ :  Ep22. ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - Ep25. ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

 

 

๐Ÿ““ ์ฑ…์—์„œ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ์„ ์จ๋ณด์„ธ์š”.


  • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์šฐ๋ฆฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ = ์ปดํ“จํ„ฐ์—๊ฒŒ ๋‚ด๋ฆฌ๋Š” ์ง€์‹œ์‚ฌํ•ญ๋“ค์˜ ๋‚˜์—ด
    • ์ง€๋„ : ํŒจ์ŠคํŒŒ์ธ๋” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์ตœ์ ๊ฒฝ๋กœ ์ฐพ์•„์คŒ)
    • JPG, PNG : ์••์ถ• ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์ด๋ฏธ์ง€ ์†์ƒ ์ตœ๋Œ€ํ•œ ์ ๊ฒŒ, ์šฉ๋Ÿ‰ ํšจ์œจ์ ์œผ๋กœ ์ถ•์†Œ)
  • ์ž๋ฃŒ๊ตฌ์กฐ = data๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ณด๊ด€/์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ
    • ๋ฐ์ดํ„ฐ๋Š” ๊ธฐ์ˆ  ๊ฐœ๋ฐœ์— ๊ผญ ํ•„์š”ํ•˜๋‹ค.
    • ์šฐ๋ฆฌ์—๊ฒŒ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณต๋˜๋Š” ์„œ๋น„์Šค๋Š” ์šฐ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋Œ€๊ฐ€๋กœ ๋งŒ๋“ค์–ด์ง„๋‹ค.
    • ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜ ๋ณด๊ด€ํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด ์ฐพ๊ธฐ ์‰ฝ๊ฒŒ ๋ณด๊ด€ํ•ด์•ผ ํ•œ๋‹ค.
  • ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์—ฌ๋Ÿฌ ๋ฐฉ์‹ ์˜ˆ์‹œ : ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชฉ์ ์— ๋”ฐ๋ผ ๊ฒฐ์ •
    • ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ํฐ ์ˆœ์„œ๋กœ ์ •๋ฆฌ (data size ๊ธฐ์ค€)
    • ์ด๋ฆ„ํ‘œ ๋ถ™์—ฌ์„œ ์ •๋ฆฌ (๊ฒ€์ƒ‰์„ ์œ„ํ•œ index ๊ธฐ์ค€)
    • data๊ฐ€ ๋“ค์–ด์˜ค๋Š” ์ˆœ์„œ๋กœ ์ •๋ฆฌ (์ƒ์„ฑ ์‹œ๊ฐ„ ๊ธฐ์ค€)
  • ์‹œ๊ฐ„๋ณต์žก๋„ : ํ”„๋กœ๊ทธ๋žจ์˜ ์ž‘์—…์†๋„๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋น ๋ฅธ์ง€ ์ธก์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์ธก์ •๋˜๋Š” ์‹œ๊ฐ„์ด ์•„๋‹ˆ๋ผ, ์ž‘์—… ๋‹จ๊ณ„๋กœ ๋ณต์žก๋„๋ฅผ ํŒ๋‹จํ•œ๋‹ค.
  • ๋ฐฐ์—ด
    • RAM์— ์ค„์ค„์ด ์ด์–ด์ง„ ํ˜•ํƒœ๋กœ ๊ณต๊ฐ„์„ ์ฐจ์ง€
    • ์ปดํ“จํ„ฐ๋Š” ๋ฐฐ์—ด์˜ ์‹œ์ž‘์ฃผ์†Œ, ๊ธธ์ด๋ฅผ ์•Œ๊ณ  ์žˆ์Œ ๋ฐฐ์—ด์˜ ์ฝ๊ธฐ ์†๋„ ๋งค์šฐ ๋น ๋ฆ„
    • ๋งจ ์•ž๋ถ€ํ„ฐ ์ฐจ๊ณก์ฐจ๊ณก ์ฑ„์›Œ์ ธ์•ผ ํ•จ ๋ฐฐ์—ด ์‚ฝ์ž…/์‚ญ์ œ ๋Š๋ฆผ
  • ๋น…์˜ค(Big-O) ํ‘œ๊ธฐ๋ฒ• : ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์†๋„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค. (์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ํ‘œํ˜„)
    • ๋‹จ๊ณ„์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ์š”์†Œ๋งŒ ๋ณด๊ณ  ๊ฒฐ์ •๋œ๋‹ค.
    • ์ƒ์ˆ˜์‹œ๊ฐ„(constant time) : O(1)
    • O(N), O(N²)
  • ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ์„ ํ˜• ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Linear search)
      • ๊ฐ€์žฅ ์ž์—ฐ์Šค๋Ÿฌ์šด ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ•, ์•ž์—์„œ ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜๋ฉฐ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์ด์ง„ ๊ฒ€์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Binary search)
      • ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ํด ๋•Œ ํ›จ์”ฌ ์œ ๋ฆฌํ•จ
      • ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ๋œ ์ƒํƒœ์—์„œ๋งŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•จ
      • ์ค‘๊ฐ„๊ฐ’๊ณผ ๊ฒ€์ƒ‰ ๊ฐ’์„ ๋น„๊ตํ•œ ํ›„ ํ•„์š” ์—†๋Š” ๊ฐ’์€ ์ œ์™ธํ•˜๊ณ  ๋‚จ์€ ๊ฐ’์—์„œ ๋‹ค์‹œ ์ค‘๊ฐ„ ๊ฐ’๊ณผ ๋น„๊ตํ•˜๋ฉฐ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

 

 

โœ๐Ÿป ์˜ค๋Š˜ ์ฝ์€ ์†Œ๊ฐ์€? ๋– ์˜ค๋ฅด๋Š” ์ƒ๊ฐ์„ ๊ฐ€๋ณ๊ฒŒ ์ ์–ด๋ณด์„ธ์š”.


์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ•ญ์ƒ ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ์ฑ…์—์„œ ํ’€์–ด์„œ ์„ค๋ช…ํ•ด ์ค€ ๋‚ด์šฉ์„ ๋ณด๋‹ˆ ํ›จ์”ฌ ์ดํ•ดํ•˜๊ธฐ๊ฐ€ ์‰ฌ์› ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ๋งŒ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ, ์ฝ”๋“œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋‹ˆ ์•ž์œผ๋กœ ๊ณต๋ถ€ํ•  ๋•Œ ์กฐ๊ธˆ ๋” ๋‹ค๋ฅธ ๋งˆ์Œ๊ฐ€์ง์œผ๋กœ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

์ด๋•Œ๊นŒ์ง€๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์— ์ดˆ์ ์„ ๋งž์ถ”๋ฉด์„œ ์ž‘์„ฑํ•ด ์™”๋‹ค. ํ•˜์ง€๋งŒ ์•ž์œผ๋กœ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ž˜ ๊ณต๋ถ€ํ•ด์„œ ์‹œ๊ฐ„๋‚ญ๋น„๋ฅผ ์ค„์ด๊ณ  ํšจ์œจ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•ด์•ผ๊ฒ ๋‹ค.

 

 

๐Ÿ‘€ ๊ถ๊ธˆํ•œ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ์ž˜ ์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์ ์–ด๋ณด์„ธ์š”.


์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•˜๋Š” ๊ฒƒ์ด ํž˜๋“ค์–ด์„œ ๋ฏธ๋ฃจ๊ธฐ๋งŒ ํ–ˆ๋Š”๋ฐ, ๋‹ค์‹œ ์กฐ๊ธˆ์”ฉ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€