[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 5๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜(1)

2025. 9. 4. 01:31ยท๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก 

โœ… 1. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ๋…

(1) ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •์˜

  • ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋“ค์„ ๋‹จ๊ณ„์ ์œผ๋กœ ๋‚˜์—ดํ•œ ๊ฒƒ์„ ์˜๋ฏธ ( ์ฃผ์–ด์ง„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ’€์ด ๋ฐฉ๋ฒ• ๋ฐ ์ ˆ์ฐจ )
  • ์ž…์ถœ๋ ฅ: 0๊ฐœ ์ด์ƒ์˜ ์™ธ๋ถ€ ์ž…๋ ฅ, 1๊ฐœ ์ด์ƒ์˜ ์ถœ๋ ฅ ์ƒ์„ฑ
  • ๋ช…ํ™•์„ฑ: ๊ฐ ๋ช…๋ น์€ ๋ชจํ˜ธํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœ ๋ช…ํ™•ํ•ด์•ผ ํ•จ
  • ์œ ํ•œ์„ฑ: ํ•œ์ •๋œ ์ˆ˜์˜ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ ํ›„์—๋Š” ๋ฐ˜๋“œ์‹œ ์ข…๋ฃŒํ•ด์•ผ ํ•จ
  • ์œ ํšจ์„ฑ: ๋ชจ๋“  ๋ช…๋ น์€ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด์™€ ๊ฐ™์ด 4๊ฐ€์ง€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผํ•จ.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ฃผ์–ด์ง„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Œ. ( ์‹ค์šฉ์  ์ธก๋ฉด์—์„œ ํšจ์œจ์ ์ด์–ด์•ผ ํ•จ )

(2) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ์„ฑ ๋‹จ๊ณ„

  • (1) ์„ค๊ณ„: ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ์•„์ด๋””์–ด๋ฅผ ๊ตฌ์ฒดํ™”ํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ˜•ํƒœ๋กœ ๋งŒ๋“œ๋Š” ๋‹จ๊ณ„
  • (2) ํ‘œํ˜„/๊ธฐ์ˆ : ์„ค๊ณ„๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ˆ˜๋„ ์ฝ”๋“œ, ์ˆœ์„œ๋„ ๋˜๋Š” ํŠน์ • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ ๋‹จ๊ณ„
  • (3) ์ •ํ™•์„ฑ ๊ฒ€์ฆ: ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ชจ๋“  ์œ ํšจํ•œ ์ž…๋ ฅ์— ๋Œ€ํ•ด ์˜ฌ๋ฐ”๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋Š”์ง€ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ฆ๋ช…ํ•˜๊ฑฐ๋‚˜ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋‹จ๊ณ„
  • (4) ํšจ์œจ์„ฑ ๋ถ„์„: ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„๊ณผ ๊ณต๊ฐ„ ์ž์›์˜ ์–‘์„ ๋ถ„์„ํ•˜์—ฌ ํšจ์œจ์„ฑ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋‹จ๊ณ„
  • ์ด๋ ‡๊ฒŒ ์ด 4๊ฐ€์ง€ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฌํ˜„์„ ํ•˜๊ฒŒ ๋œ๋‹ค.

(3) ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ด€๊ณ„

[ ์ž๋ฃŒ๊ตฌ์กฐ ]

  • ๋ฐ์ดํ„ฐ ์‚ฌ์ด์˜ ๋…ผ๋ฆฌ์  ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๊ณ  ์กฐ์งํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๊ธฐ๋ณธ์ /๋Œ€ํ‘œ์  ์ข…๋ฅ˜๋กœ๋Š” ๋ฐฐ์—ด, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ, ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„ ๋“ฑ์ด ์žˆ๋‹ค.

[ ํšจ์œจ์ ์ธ ํ”„๋กœ๊ทธ๋žจ ]

  • ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•œ ๊ณ ๋ ค ์—†๋Š” ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ ํƒ์€ ๋ฌด์˜๋ฏธํ•จ.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๊ณ ๋ ค ์—†๋Š” ํšจ์œจ์ ์ธ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์„ ํƒ์€ ๋ฌด์˜๋ฏธํ•จ.
  • ์ฆ‰, ์ ์ ˆํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ ์ ˆํžˆ ํ•ฉ์ณ์ ธ ์กฐํ™”๋ฅผ ์ด๋ฃจ๋ฉด ํšจ์œจ์ ์ธ ํ”„๋กœ๊ทธ๋žจ(์•Œ๊ณ ๋ฆฌ์ฆ˜)์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.

โœ… 2. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ค๊ณ„

  • ํšจ์œจ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์ด๋‹ค.

(1) ์ตœ๋Œ€๊ฐ’์„ ์ฐพ๊ธฐ - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์‹œ

  • ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ตœ์†Œ/์ตœ๋Œ€๊ฐ’ ์ฐพ๊ธฐ์— ํ•ด๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์›์†Œ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.
  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์”ฉ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์—์„œ๋Š” n๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ n-1 ๋ฒˆ์˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ์ฆ‰, ์ตœ์†Œํ•œ์˜ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ๋œ๋‹ค.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ 1๊ณผ 2๋Š” ๊ฐ๊ฐ 7๋ฒˆ์˜ ์—ฐ์‚ฐ์œผ๋กœ ๋™์ผํ•œ ํšจ์œจ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋‹ค.

(2) ๋’ค์„ž์ธ ์นด๋“œ ์ค‘์—์„œ ์›ํ•˜๋Š” ์นด๋“œ ์ฐพ๊ธฐ - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์‹œ

  • ์ˆœ์ฐจ ํƒ์ƒ‰: ๋ฐฐ์—ด์ด๋‚˜ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์™€ ๊ฐ™์€ ์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ์—์„œ ํŠน์ •ํ•œ ๊ฐ’์„ ์ฐพ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.
  • ์ •๋ ฌ๋˜์ง€ ์•Š์€ ์นด๋“œ ๋”๋ฏธ์—์„œ ์›ํ•˜๋Š” ์นด๋“œ๋ฅผ ์ฐพ๋Š” ๊ฐ€์žฅ ์ง๊ด€์ ์ด๊ณ  ํ˜„์‹ค์ ์ธ ๋ฐฉ๋ฒ•์ž„.
  • ์ฆ‰, ์ •๋ ฌ์ด ๋˜์–ด์žˆ๋‹ค๋ฉด ๋‹ค๋ฅธ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ด ๋” ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ์Œ.

(3) ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ด๋œ ์นด๋“œ ์ค‘์—์„œ ์ฐพ๊ธฐ - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์‹œ

  • ์ด์ง„ ํƒ์ƒ‰: ์ ˆ๋ฐ˜์”ฉ ์ž˜๋ผ๊ฐ€๋ฉด์„œ ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์•„๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ •๋ ฌ๋œ ์ž๋ฃŒ์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•จ.
  • ์ฆ‰, ์ •๋ ฌ๋œ ์ž๋ฃŒ์˜ ๊ฐœ์ˆ˜(n)๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ˆœ์ฐจ ํƒ์ƒ‰๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ด๊ฒŒ ๋œ๋‹ค.
  • ์˜ˆ์‹œ์—์„œ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜์—ด๋œ ๊ฒฝ์šฐ๋ฅผ ๋ณด๋ฉด ์ด์ง„ ํƒ์ƒ‰์„ ์“ฐ๊ฒŒ ๋˜๋ฉด ๊ฐ€์šด๋ฐ 7์„ ๋ณด๊ณ  ์™ผ์ชฝ์€ ์ œ์™ธ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋ฉฐ, ์˜ค๋ฅธ์ชฝ ๊ฐ€์šด๋ฐ๋ฅผ ๋ณด๊ณ  ๋งˆ์ง€๋ง‰ ์™ผ์ชฝ์— 10์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๊ฒŒ๋จ. ์ฆ‰, 3๋ฒˆ๋งŒ์— ์ฐพ์„ ์ˆ˜ ์žˆ์–ด ๋งค์šฐ ํšจ์œจ์ ์ž„.

(4) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„์— ์ ์šฉํ•  ๋ฐฉ๋ฒ•

[ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ข‹์€๊ฐ€? ]

  • ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ข‹์€๊ฐ€? ๋Š” ๋ฌธ์ œ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ณ , ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๋ฌด์ˆ˜ํžˆ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฉ๋ฒ• ๋˜ํ•œ ๋งค์šฐ ๋‹ค์–‘ํ•จ.
  • ๊ทธ๋ž˜์„œ ์ฃผ์–ด์ง„ ๋ฌธ์ œ์™€ ๊ทธ์— ๋”ฐ๋ฅธ ์กฐ๊ฑด๋“ฑ์ด ๋งค์šฐ ๋‹ค์–‘ํ•˜๋ฏ€๋กœ ํ•ด๋‹น ๋ฌธ์ œ์— ํ•„์š”ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ง์ ‘ ์„ค๊ณ„ํ•ด์•ผํ•จ.
  • ์ฆ‰, ์ผ๋ฐ˜์ ์ด๊ณ  ๋ฒ”์šฉ์ ์ธ ์„ค๊ณ„ ๊ธฐ๋ฒ•์€ ์‚ฌ์‹ค์ƒ ์กด์žฌํ•˜์ง€ ์•Š์Œ.
  • ๊ทธ๋ ‡์ง€๋งŒ ๋ชจ๋“  ๋ฌธ์ œ๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋งŽ์€ ๋ฌธ์ œ์— ์ ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ์„ค๊ณ„ ๊ธฐ๋ฒ•์ด ์กด์žฌํ•จ.

[ ๋Œ€ํ‘œ์ ์ธ ์„ค๊ณ„ ๊ธฐ๋ฒ• ]

  • ๋ถ„ํ• ์ •๋ณต(divide-and-conquer) ๋ฐฉ๋ฒ•
  • ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ(dynamic programming) ๋ฐฉ๋ฒ•
  • ์š•์‹ฌ์Ÿ์ด(greedy) ๋ฐฉ๋ฒ•

(5) ๋ถ„ํ• ์ •๋ณต ๋ฐฉ๋ฒ• ( ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• )

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

[ ํŠน์ง• ]

  • ๋ถ„ํ• ๋œ ์ž‘์€ ๋ฌธ์ œ๋Š” ์›๋ž˜ ๋ฌธ์ œ์™€ ๋™์ผ, ๋‹จ ์ž…๋ ฅ ํฌ๊ธฐ๋งŒ ์ž‘์•„์ง
  • ๋ถ„ํ• ๋œ ์ž‘์€ ๋ฌธ์ œ๋Š” ์„œ๋กœ ๋…๋ฆฝ์ ์ž„.

(6) ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ• ( ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• )

๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋Œ€ํ‘œ์  ์˜ˆ์‹œ

  • ์ตœ์ ํ™” ๋ฌธ์ œ์˜ ํ•ด(์ตœ๋Œ“๊ฐ’, ์ตœ์†Ÿ๊ฐ’)๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ์ƒํ–ฅ์‹ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ๋ฌธ์ œ์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ์†Œ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๋ฅผ ๊ตฌํ•ด์„œ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•ด ๋†“๊ณ , ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ํฌ๊ธฐ๊ฐ€ ๋ณด๋‹ค ํฐ ๋ฌธ์ œ์˜ ํ•ด๋ฅผ ์ ์ง„์ ์œผ๋กœ ๋งŒ๋“ค์–ด ๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ( ์†Œ๋ฌธ์ œ๋“ค์ด ์„œ๋กœ ๋…๋ฆฝ์ผ ํ•„์š” ์—†์Œ )
  • ๋ฌธ์ œ๋ฅผ ๋ถ„ํ•  ์ •๋ณต์ฒ˜๋Ÿผ ์ชผ๊ฐœ์–ด๋ณด๋‹ˆ ๊ฒน์น˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ๋“ค์ด ์กด์žฌํ•  ๊ฒฝ์šฐ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ( ํ•ต์‹ฌ ํ‚ค์›Œ๋“œ: ์žฌ์‚ฌ์šฉ )

(7) ์š•์‹ฌ์Ÿ์ด ๋ฐฉ๋ฒ• ( ๋Œ€ํ‘œ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• )

์š•์‹ฌ์Ÿ์ด ๋ฐฉ๋ฒ• ์˜ˆ์‹œ

  • ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ์ผ๋ จ์˜ ์„ ํƒ ๊ณผ์ •๋งˆ๋‹ค ์ „ํ›„ ๋‹จ๊ณ„์˜ ์„ ํƒ๊ณผ๋Š” ์ƒ๊ด€์—†์ด ๊ฐ ๋‹จ๊ณ„์—์„œ '๊ฐ€์žฅ ์ตœ์„ '์ด๋ผ๊ณ  ์—ฌ๊ฒจ์ง€๋Š” ๊ตญ๋ถ€์ ์ธ ์ตœ์ ํ•ด๋ฅผ ์„ ํƒํ•ด ๋‚˜๊ฐ€๋ฉด ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ „์ฒด์ ์ธ ์ตœ์ ํ•ด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์„๊ฒƒ์ด๋ผ๊ณ  ํฌ๋งํ•˜๋Š” ๋ฐฉ๋ฒ• ( ๊ฐ ๋‹จ๊ณ„ ๋งˆ๋‹ค ์ตœ์„ ์˜ ๋Œ€ํ•œ ์š•์‹ฌ )
  • ํฌ๋งํ•˜๋‹ค ๋ผ๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ ๋‹จ๊ณ„์˜ ์ตœ์ ํ•ด๋ฅผ ํ†ตํ•ด ์ „์ฒด์ ์ธ ์ตœ์ ํ•ด๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Œ.
  • ์š•์‹ฌ์Ÿ์ด ๋ฐฉ๋ฒ•์—์„œ "๊ฐ€์žฅ ์ข‹์•„ ๋ณด์ด๋Š” ๊ฒƒ"์ด๋ผ๋Š” ํ‘œํ˜„์€ ์ข…์ข… **'์ตœ๋Œ“๊ฐ’' ๋˜๋Š” '์ตœ์†Ÿ๊ฐ’'**๊ณผ ๊ฐ™์€ ์ตœ์ ์˜ ๊ฐ’์„ ์˜๋ฏธํ•œ๋‹ค.

(8) ๋Œ€ํ‘œ์  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ• ์ •๋ฆฌ

  • ๋ถ„ํ•  ์ •๋ณต, ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์š•์‹ฌ์Ÿ์ด ๋ฐฉ๋ฒ• ์„ธ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์„ค๊ณ„์ž์˜ ๋งˆ์Œ๊ฐ€์ง์— ๊ฐ€๊นŒ์›€
  • ๋ถ„ํ•  ์ •๋ณต: ํฐ ๋ฌธ์ œ๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†์œผ๋‹ˆ, ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ์ชผ๊ฐœ์„œ ๊ฐ์ž ํ•ด๊ฒฐํ•˜์ž.
  • ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ํ’€๋‹ค ๋ณด๋‹ˆ ๋˜‘๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์ž๊พธ ๋‚˜์˜ค๋„ค? ํ•œ ๋ฒˆ ํ‘ผ ๋‹ต์€ ์ž˜ ์ ์–ด๋’€๋‹ค๊ฐ€ ๋‹ค์‹œ ์จ๋จน์–ด์•ผ๊ฒŸ๋‹ค.
  • ์š•์‹ฌ์Ÿ์ด ๋ฐฉ๋ฒ•: ๋‹ค๋ฅธ ๊ฑด ์ƒ๊ฐํ•˜์ง€ ๋ง๊ณ , ์ง€๊ธˆ ๋‹น์žฅ ๊ฐ€์žฅ ์ข‹์€ ์„ ํƒ๋งŒ ๊ณ„์†ํ•˜์ž

โœ… 3. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ถ„์„

  • ์„ค๊ณ„๊ฐ€ ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.

(1) ์ •ํ™•์„ฑ ๋ถ„์„ ( ๋ณต์žกํ•˜๊ณ  ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ๋‹ค๋ฃจ์ง€ ์•Š๋Š” ๋‚ด์šฉ์ด ๋จ. )

  • ์œ ํšจํ•œ ์ž…๋ ฅ๊ณผ ์œ ํ•œํ•œ ์‹œ๊ฐ„๋‚ด์— ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ƒ์„ฑ ๋˜๋Š”๊ฐ€๋ฅผ ํŒ๋‹จํ•จ.
  • ์ด๋Ÿฌํ•œ ํ™•์ธํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์–‘ํ•œ ์ˆ˜ํ•™์  ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•œ ์ด๋ก ์  ์ฆ๋ช…์„ ํ•˜๋Š” ๊ณผ์ •์ž„.
  • ์ •ํ™•์„ฑ ๋ถ„์„์ด ์ด๋ฏธ ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ณดํ†ต ํšจ์œจ์„ฑ ๋ถ„์„์„ ํ•จ ์šฐ๋ฆฐ.

(2) ํšจ์œจ์„ฑ ๋ถ„์„ ( ๋Œ€๋ถ€๋ถ„ ์ด๊ฑธ ์‚ฌ์šฉ )

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์ปดํ“จํ„ฐ ์ž์›์˜ ์–‘์„ ์ธก์ •ํ•˜๊ณ  ํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ. ( ํ•ต์‹ฌ์€ ๋ฉ”๋ชจ๋ฆฌ, CPU ์ž„ )
  • ๊ณต๊ฐ„ ๋ณต์žก๋„: ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘ = ์ •์  ๊ณต๊ฐ„ + ๋™์  ๊ณต๊ฐ„ ( ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์–ผ๋งˆ๋‚˜ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๋”ฐ์ง )
  • ์‹œ๊ฐ„ ๋ณต์žก๋„: CPU์™€ ๊ด€๋ จํ•ด์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆฌ๋А๋ƒ๋ฅผ ๋”ฐ์ง€๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.

(3) ์‹œ๊ฐ„ ๋ณต์žก๋„

[ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ํ•ต์‹ฌ ์›๋ฆฌ ]

  • ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ์„ ๊ฐ๊ด€์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ค€์ž„.
  • ์ปดํ“จํ„ฐ์˜ ์†๋„, ์–ธ์–ด ๋“ฑ ์™ธ๋ถ€ ์š”์ธ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” **์‹ค์ œ ์‹œ๊ฐ„(์ดˆ ๋‹จ์œ„)**์ด ์•„๋‹ˆ๋ผ, **์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ '์—ฐ์‚ฐ ํšŸ์ˆ˜'**๋ฅผ ์ธก์ •ํ•œ๋‹ค.
  • ์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ž์ฒด์˜ ์ˆœ์ˆ˜ํ•œ ์„ฑ๋Šฅ์„ ๋น„๊ตํ•˜๋Š” ๋ฐ ๋ชฉ์ ์ด ์žˆ์Œ.
  • ์ฆ‰, ์‹œ๊ฐ„ ๋ณต์žก๋„์—์„œ ๋งํ•˜๋Š” '์ˆ˜ํ–‰ ์‹œ๊ฐ„'์€ ์‹ค์ œ๋กœ ๊ฑธ๋ฆฌ๋Š” ์ดˆ ๋‹จ์œ„์˜ ์‹œ๊ฐ„์ด ์•„๋‹ˆ๋ผ, ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋ฅผ ์˜๋ฏธํ•จ.
  • ํ•ต์‹ฌ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณ„์‚ฐ, ๋น„๊ต, ๋Œ€์ž… ๋“ฑ์˜ ๊ธฐ๋ณธ์ ์ธ ์—ฐ์‚ฐ์ด ๋ช‡ ๋ฒˆ ์ผ์–ด๋‚˜๋Š”์ง€๋ฅผ ์„ธ๋Š” ๊ฒƒ์ž„.

[ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ๊ฐ€์ง€ ๊ธฐ์ค€ ]

  • [ 1. ์ž…๋ ฅ ํฌ๊ธฐ์˜ ํ•จ์ˆ˜ ]
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ(N)์— ๋Œ€ํ•œ ํ•จ์ˆ˜๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. 
  • ์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ N๊ฐœ์ผ ๋•Œ ์—ฐ์‚ฐ์ด ๋ช‡ ๋ฒˆ ๋ฐœ์ƒํ•˜๋Š”์ง€ (T(N))๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ๊ฐ€ 2๋ฐฐ ๋Š˜์–ด๋‚˜๋ฉด ์—ฐ์‚ฐ ํšŸ์ˆ˜๋„ 2๋ฐฐ ๋Š˜์–ด๋‚˜๋Š” ๊ด€๊ณ„๋ฅผ O(N)์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • [ 2. ์ตœ์•… ์ˆ˜ํ–‰ ์‹œ๊ฐ„ ]
  • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€์žฅ ๋А๋ฆฌ๊ฒŒ ๋™์ž‘ํ•˜๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์„ฑ๋Šฅ์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. 
  • ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ํŒŒ์•…ํ•˜๋ฉด, "์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•„๋ฌด๋ฆฌ ๋‚˜์œ ์ƒํ™ฉ์ด ์™€๋„ ์ด ์‹œ๊ฐ„(์—ฐ์‚ฐ ํšŸ์ˆ˜)์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค"๋ผ๋Š” ์„ฑ๋Šฅ์˜ ์ƒํ•œ์„ ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์–ด ๊ฐ€์žฅ ์•ˆ์ „ํ•œ ๊ธฐ์ค€์ด ๋ฉ๋‹ˆ๋‹ค.

(4) ์ ๊ทผ์„ฑ๋Šฅ

  • ์ ๊ทผ์„ฑ๋Šฅ์ด๋ž€ ์ž…๋ ฅ ํฌ๊ธฐ n์ด ๋งค์šฐ ์ปค์งˆ ๋•Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€, ์ฆ‰ ์„ฑ์žฅ๋ฅ ์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ ์„ฑ๋Šฅ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์‹ค์ œ ์‹คํ–‰ ์‹œ๊ฐ„์ด๋‚˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ •ํ™•ํžˆ ์ธก์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ž…๋ ฅ์ด ์ปค์งˆ์ˆ˜๋ก ์ฆ๊ฐ€ํ•˜๋Š” ์†๋„๋ฅผ ๋ถ„์„ํ•œ๋‹ค.
  • ์ฃผ๋กœ Big-O, Big-Ω, Big-Θ ๊ฐ™์€ ์ ๊ทผ์  ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„์„ ํ•œ๋‹ค.

  • ์ž‘์€ n์—์„œ๋Š” B ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋А๋ฆด ์ˆ˜ ์žˆ์ง€๋งŒ, n์ด ์ถฉ๋ถ„ํžˆ ์ปค์ง€๋ฉด n^2์ธ A๊ฐ€ ๋” ๋А๋ฆฌ๋‹ค๋Š” ๊ฒƒ์„ ์ ๊ทผ์„ฑ๋Šฅ ๋ถ„์„์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ์Œ.
  • ์ ๊ทผ์„ฑ๋Šฅ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰์‹œ๊ฐ„์ด ๋‹คํ•ญ์‹์œผ๋กœ ํ‘œํ˜„์ด ๋˜์—ˆ์„ ๋•Œ, ํ•ด๋‹น ๋‹คํ•ญ์‹์˜ ์ตœ๊ณ ์ฐจํ•ญ์„ ์ด์šฉํ•ด์„œ ํ‘œ๊ธฐํ•˜๋Š”๊ฒƒ์„ ์˜๋ฏธํ•จ.

(4) ์ ๊ทผ์„ฑ๋Šฅ์˜ ํ‘œ๊ธฐ๋ฒ•

  • ์ ๊ทผ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•˜๋ฉด ์ž…๋ ฅ ํฌ๊ธฐ ๐‘› ์ด ์ปค์งˆ ๋•Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๊ณ , ์ด๋ฅผ ์ˆ˜ํ•™์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ ์„ฑ๋Šฅ ์ง€ํ‘œ๊ฐ€ ์ ๊ทผ์  ์ƒํ•œ(Big-O), ์ ๊ทผ์  ํ•˜ํ•œ(Big-Ω), ์ ๊ทผ์  ์ƒํ•˜ํ•œ(Big-Θ) ์„ธ ๊ฐ€์ง€์ด๋‹ค.

[ ์ ๊ทผ์  ์ƒํ•œ (Big-oh) ]

  • ์ž…๋ ฅ ํ•จ์ˆ˜ ๐‘“(๐‘›) ์ด ๐‘๐‘”(๐‘›) ๋ณด๋‹ค ํ•ญ์ƒ ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์•„์ง€๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ, ์šฐ๋ฆฌ๋Š” ๐‘“(๐‘›) ์˜ ์ ๊ทผ์  ์ƒํ•œ์„ ๐‘”(๐‘›) ์ด๋ผ๊ณ  ์ •์˜ํ•จ.
  • ๐‘“(๐‘›) : ์ž…๋ ฅ n์„ ๋„ฃ์œผ๋ฉด ์ˆ˜ํ–‰๋Ÿ‰์ด ์–ผ๋งˆ์ธ์ง€ ์•Œ๋ ค์ฃผ๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • ๐‘”(๐‘›) : ์„ฑ์žฅ์„ ๋น„๊ตํ•  ๊ธฐ์ค€์ด ๋˜๋Š” ํ•จ์ˆ˜์ž„. ํ”ํžˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„๋ฅผ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์“ฐ์ด๋Š” ํ‘œ์ค€ ํ•จ์ˆ˜ (์˜ˆ: ๐‘›, ๐‘›^2 , log ๐‘›)
  • ๐‘ : f(n)๊ณผ g(n) ์‚ฌ์ด์˜ ํฌ๊ธฐ ์ฐจ์ด๋ฅผ ์กฐ์ •ํ•˜๋Š” ์ƒ์ˆ˜์ด๋‹ค.
  • ๐‘›0โ€‹ : ์ถฉ๋ถ„ํžˆ ํฐ ์ž…๋ ฅ ํฌ๊ธฐ
  • ์ตœ๋Œ€ ์„ฑ์žฅ๋ฅ ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐœ๋…์ด๋‹ค.
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ตœ์•…์˜ ๊ฒฝ์šฐ ์–ผ๋งˆ๋‚˜ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ๋Š”์ง€ ์ƒํ•œ์„ ์„ ์ œ๊ณตํ•œ๋‹ค.
  • ์‹ค์ œ ์‹คํ–‰ ์‹œ๊ฐ„๋ณด๋‹ค๋Š” ์ž…๋ ฅ ํฌ๊ธฐ ์ฆ๊ฐ€์— ๋”ฐ๋ฅธ ์ฆ๊ฐ€ ์†๋„๋ฅผ ๋ณด๋Š” ๋ฐ ์ดˆ์ ์ด ์žˆ์Œ.

[ ์ ๊ทผ์  ํ•˜ํ•œ (Big-omega) ]

  • ์ž…๋ ฅ ํ•จ์ˆ˜ ๐‘“(๐‘›)์ด ๐‘๐‘”(๐‘›) ๋ณด๋‹ค ํ•ญ์ƒ ํฌ๊ฑฐ๋‚˜ ๊ฐ™์•„์ง€๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ, ์šฐ๋ฆฌ๋Š” ๐‘“(๐‘›) ์˜ ์ ๊ทผ์  ํ•˜ํ•œ์„ ๐‘”(๐‘›) ์ด๋ผ๊ณ  ์ •์˜ํ•จ.

[ ์ ๊ทผ์  ์ƒํ•˜ํ•œ (Big-theta) ]

  • ์ ๊ทผ์  ์ƒํ•œ(Big-O)์€ ํ•จ์ˆ˜ ๐‘“(๐‘›)์ด ๊ธฐ์ค€ ํ•จ์ˆ˜ ๐‘”(๐‘›)๋ณด๋‹ค ์ถฉ๋ถ„ํžˆ ํฐ ์ž…๋ ฅ์—์„œ ์œ„๋กœ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋Š” ์ตœ๋Œ€ ์„ฑ์žฅ๋ฅ , ์ ๊ทผ์  ํ•˜ํ•œ(Big-Ω)์€ ๐‘“(๐‘›) ์ด ๐‘”(๐‘›) ๋ณด๋‹ค ์ถฉ๋ถ„ํžˆ ํฐ ์ž…๋ ฅ์—์„œ ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€์ง€ ์•Š๋Š” ์ตœ์†Œ ์„ฑ์žฅ๋ฅ , ์ ๊ทผ์  ์ƒํ•˜ํ•œ(Big-Θ)์€ ๐‘“(๐‘›) ์ด ๐‘”(๐‘›) ๊ณผ ๊ฐ™์€ ์„ฑ์žฅ ์†๋„๋กœ ์ƒํ•œ๊ณผ ํ•˜ํ•œ ์‚ฌ์ด์— ๋ผ์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

[ ์ ๊ทผ์„ฑ๋Šฅ ํ‘œ๊ธฐ ๋‹คํ•ญ์‹ ํ‘œ๊ธฐ ]


โœ… 4. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ์„ ํƒ ์ •๋ ฌ, ๋ฒ„๋ธ” ์ •๋ ฌ, ์‚ฝ์ž… ์ •๋ ฌ

(1) ์ •๋ ฌ(sort) ์ด๋ž€?

  • ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ๊ธฐ์ค€(์ˆœ์„œ)์— ๋”ฐ๋ผ ์žฌ๋ฐฐ์—ดํ•˜๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์ปดํ“จํ„ฐ์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ ์ค‘ ํ•˜๋‚˜์ž„.
  • ์ •๋ ฌ ์ˆ˜ํ–‰ ์‹œ์ ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ณณ์— ๋”ฐ๋ผ์„œ ๋‚ด๋ถ€์ •๋ ฌ, ์™ธ๋ถ€์ •๋ ฌ๋กœ ๋‚˜๋‰œ๋‹ค.
  • ๋‚ด๋ถ€์ •๋ ฌ: ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ ์žฌํ•œ ํ›„ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•จ. ( ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ์„ ๋•Œ ๊ฐ€๋Šฅ )
  • ์™ธ๋ถ€์ •๋ ฌ: ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ(์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ํฐ ๊ฒฝ์šฐ) ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ์ €์žฅํ•˜๊ณ  ๊ทธ ์ค‘์˜ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉด์„œ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋กœ ์ ์žฌํ•ด์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•จ.

(2) ๋‚ด๋ถ€์ •๋ ฌ

  • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜์— ์ €์žญํ•œ ํ›„ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ์‹
  • ์ •๋ ฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ ํฌ๊ฒŒ ๋น„๊ต๊ธฐ๋ฐ˜, ๋ถ„ํฌ๊ธฐ๋ฐ˜ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰จ.
  • ๋น„๊ต ๊ธฐ๋ฐ˜: ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ •๋ ฌํ•  ๋•Œ ๋‘ ๊ฐ’์„ ๋น„๊ตํ•ด์„œ ํฌ๊ฑฐ๋‚˜ ๊ฐ™๋‹ค ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ
  • ๋ถ„ํฌ ๊ธฐ๋ฐ˜: ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค์‹์œผ๋กœ ๋ถ„ํฌํ•˜๊ณ  ์žˆ๋‹ค๋ผ๋Š” ์ •๋ณด๋ฅผ ์‚ฌ์ „์— ๋ฏธ๋ฆฌ ์•Œ์•„์„œ ๊ทธ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ

[ ๋น„๊ต ๊ธฐ๋ฐ˜ ]

  • ์„ ํƒ(selection) ์ •๋ ฌ - O(n^2)
  • ๋ฒ„๋ธ”(bubble) ์ •๋ ฌ  - O(n^2)
  • ์‚ฝ์ž…(insertion) ์ •๋ ฌ  - O(n^2)
  • ํ€ต(quick) ์ •๋ ฌ - O(nlogn)
  • ํ•ฉ๋ณ‘(merge) ์ •๋ ฌ  - O(nlogn)

[ ๋ถ„ํฌ ๊ธฐ๋ฐ˜ ]

  • ๊ณ„์ˆ˜(countion) ์ •๋ ฌ - O(n)
  • ๊ธฐ์ˆ˜(radix) ์ •๋ ฌ  - O(n)
  • ์‚ฌ์ „์— ์ด๋ฏธ ์•Œ๊ณ  ์žˆ๋Š” ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํžˆ ์„ฑ๋Šฅ๋ฉด์—์„œ๋Š” ๋ถ„ํฌ๊ธฐ๋ฐ˜์ด ์šฐ์›”ํ•จ.

(3) ์ •๋ ฌ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ฐ€์ •

(3) ์„ ํƒ์ •๋ ฌ

  • ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€(๋˜๋Š” ํฐ) ๊ฐ’์„ ์„ ํƒํ•ด ์•ž์—์„œ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ์ž๋ฆฌ ๋ฐ”๊พธ๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ•
  • ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ “์„ ํƒ” + “์ •๋ ฌ”์ด์—์š”.
  • ์œ„์™€ ๊ฐ™์ด ์ •๋ ฌ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ฐ€์ •์—์„œ ์„ ํƒ ์ •๋ ฌ์„ ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ

  • ์„ ํƒ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋”ฐ๋ผ์„œ ํ•ด๋‹น ๋ฐฉ์‹์œผ๋กœ ์ •๋ ฌ์ด ๋˜๊ฒŒ ๋œ๋‹ค.

  • ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋งŒํผ ๋ฐ˜๋ณต์„ ํ•˜๋ฉด ์ •๋ ฌ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
  • ์ตœ์†Œ๊ฐ’์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ฐพ์•„์„œ ์ •๋ ฌ์„ ํ•ด์ฃผ๋Š” ๋ฐฉ์‹์ด ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฆ‰, ๋ฐ์ดํ„ฐ n๊ฐœ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ n-1 ๋ฒˆ์˜ ๋น„๊ต๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๊ณ , ์ดํ›„ ๋‹ค์Œ ์ตœ์†Œ๊ฐ’ ๋˜ํ•œ n - 1์˜ n - 2๋ฒˆ์˜ ๋น„๊ต๊ฐ€ ํ•„์š”ํ•ด์ง„๋‹ค.
  • ์ฆ‰, ์ˆ˜์‹์„ ์ •๋ฆฌํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” O(n^2) ์ด ๋œ๋‹ค.
  • ๊ฒฐ๊ณผ์ ์œผ๋กœ ์–ธ์ œ๋‚˜ ๋™์ผํ•œ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ๊ฐ–๊ฒŒ๋œ๋‹ค.

(4) ๋ฒ„๋ธ”์ •๋ ฌ

  • ์ธ์ ‘ํ•œ ๋‘ ์›์†Œ๋ฅผ ๋น„๊ตํ•ด์„œ ํฐ ๊ฐ’์„ ๋’ค๋กœ ๋ณด๋‚ด๋Š” ์ •๋ ฌ์ž„. ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ ๊ฑฐํ’ˆ์ฒ˜๋Ÿผ ํฐ ๊ฐ’์ด ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ชจ์Šต์—์„œ ์œ ๋ž˜๋จ.
  • ์œ„์™€ ๊ฐ™์ด ์ •๋ ฌ์„ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ฐ€์ •์—์„œ ๋ฒ„๋ธ” ์ •๋ ฌ์„ ํ•˜๊ฒŒ ๋  ๊ฒฝ์šฐ

 

  • ์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ ๋น„๊ต๋ฅผ ํ†ตํ•ด์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํฐ ๊ฐ’์„ ๋ฐ€์–ด์คŒ์„ ๋ฐ˜๋ณตํ•˜๋‹ค๋ณด๋ฉด ์ •๋ ฌ์ด ๋จ.

[ ๋ฒ„๋ธ” ์ •๋ ฌ์˜ ํŠน์ง• ]

  • ์›ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ด๋ฏธ ์ •๋ ฌ์ด ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋น„๊ต๊ฐ€ ์—†์ด ๋ฐ”๋กœ ์ˆ˜ํ–‰์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๋น ๋ฅผ ์ˆ˜ ์žˆ์Œ.
  • ํ•˜์ง€๋งŒ, ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ O(n^)์ด ๋  ์ˆ˜ ์žˆ์Œ.

(5) ์‚ฝ์ž… ์ •๋ ฌ

  • ์ฃผ์–ด์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ฝ‘์€ ํ›„, ๋‚˜์—ด๋œ ๋ฐ์ดํ„ฐ๋“ค์ด ํ•ญ์ƒ ์ •๋ ฌ๋œ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง€๋„๋ก ๋ฝ‘์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋ฅธ ์œ„์น˜์— ์‚ฝ์ž…ํ•ด์„œ ๋‚˜์—ดํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ์ž…๋ ฅ ๋ฐฐ์—ด์„ ์ •๋ ฌ ๋ถ€๋ถ„๊ณผ ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ 
  • ๋ฏธ์ •๋ ฌ ๋ถ€๋ถ„์˜ ๊ฐ€์žฅ ์™ผ์ชฝ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ(์ฒซ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ)๋ฅผ ๋ฝ‘์€ ํ›„ ์ •๋ ฌ๋œ ๋ถ€๋ถ„์—์„œ ์ œ์ž๋ฆฌ๋ฅผ ์ฐพ์•„์„œ ์‚ฝ์ž…ํ•˜๋Š” ๊ณผ์ •์„ ๋ฐ˜๋ณต\
  • ์ด๋ฏธ์ง€์˜ ์›๋ฆฌ๋Š” ๋งจ ์•ž ๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ์ธ 20์„ ๊ฐ€์žฅ ๊ทผ์ ‘ํ•œ 40๊ณผ ๋น„๊ต ํ›„ ์•ž์œผ๋กœ ์˜ฎ๊ธฐ๊ณ , ์ดํ›„ ๋‹ค์Œ 30๊ณผ ๋น„๊ตํ›„ ์•ž์œผ๋กœ ์˜ฎ๊น€ ๊ทธ๋ฆฌ๊ณ  10๊ณผ ๋น„๊ตํ›„ ๋ณธ์ธ์ด ๋” ํฌ๋‹ค๋ฉด ๊ทธ ๋’ค์— ๋ฐฐ์น˜๊ฐ€ ๋จ. ( ์ฆ‰, ๋ณธ์ธ ๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ทธ ๋’ค์— ์‚ฝ์ž…์ด ๋จ. )
  • ํ•ต์‹ฌ์€ ์ •๋ ฌ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์˜ ์ฒซ ๋ฒˆ์งธ ๋ถ€๋ถ„๊ณผ ์ •๋ ฌ๋œ ์˜ค๋ฅธ์ชฝ ๋๋ถ€ํ„ฐ ๋น„๊ตํ•˜๋ฉด์„œ ๋„ฃ๊ฒŒ๋จ.

  • ์ด๋ฏธ ์ •๋ ฌ์ด ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ตœ์„ ์˜ ๊ฒฝ์šฐ, ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌ๋œ ๊ฒฝ์šฐ๋ฅผ ์‚ฝ์ž… ์ •๋ ฌ์—์„  ์ตœ์•…์˜ ๊ฒฝ์šฐ๋กœ ๋ณธ๋‹ค.

'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต > ๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 9๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(1)  (0) 2025.09.08
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 8๊ฐ• - ์šด์˜์ฒด์ œ(2)  (9) 2025.08.27
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 7๊ฐ• - ์šด์˜์ฒด์ œ(1)  (2) 2025.08.22
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 1๊ฐ• - ์ปดํ“จํ„ฐ์™€ ์ž๋ฃŒ(1)  (3) 2025.08.20
'๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต/๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 9๊ฐ• - ์ปดํ“จํ„ฐ ๊ตฌ์กฐ(1)
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 8๊ฐ• - ์šด์˜์ฒด์ œ(2)
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 7๊ฐ• - ์šด์˜์ฒด์ œ(1)
  • [์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 1๊ฐ• - ์ปดํ“จํ„ฐ์™€ ์ž๋ฃŒ(1)
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด๋ณด๊ธฐ (169)
      • ๐ŸŽ“๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต (35)
        • โš™๏ธ์ปดํ“จํ„ฐ์˜ ์ดํ•ด (11)
        • ๐Ÿ’ป์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก  (5)
        • ๐Ÿ”ข์ž๋ฃŒ๊ตฌ์กฐ (4)
        • ๐ŸŒ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ… (11)
        • ๐Ÿ›๏ธ์„ธ๊ณ„์˜์ •์น˜์™€๊ฒฝ์ œ (3)
        • ๐Ÿ–ฅ๏ธ์ปดํ“จํ„ฐ๊ณผํ•™๊ณผ (1)
      • ๐Ÿ› ๏ธBackend (58)
        • ๐Ÿ“š๋ฐฑ์—”๋“œ ๊ณต๋ถ€ (4)
        • โ˜•Java (23)
        • ๐ŸŒณSpring (13)
        • โš™๏ธC (2)
        • โšกPython (13)
        • JavaScript (1)
        • ๐Ÿ›ข๏ธDatabase (0)
        • Algorithm Problem Solving (2)
      • ๐ŸŒ Network (7)
        • ๐Ÿ“œHTTP (7)
      • ๐Ÿš€DevOps (1)
      • โ›บ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉํด๋Ÿฝ (64)
      • ์ •๋ณด (2)
      • ์ •๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ธ€ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํด๋ผ์šฐ๋“œ
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…
    ์šด์˜์ฒด์ œ
    ์ž๋ฐ”
    Python
    ์œ ๋น„์ฟผํ„ฐ์Šค
    ์ž๋ฃŒ๊ตฌ์กฐ
    ๋ฐฐ์—ด
    ๋ฐฉ์†ก๋Œ€
    Spring Framework
    ์ปดํŒŒ์ผ๋Ÿฌ
    ์Šคํ”„๋ง
    ๋ฐฉํ†ต๋Œ€
    ๋ฐฉ์†กํ†ต์‹ ๋Œ€ํ•™๊ต
    ํŒŒ์ด์ฌ
    ์ž…์ถœ๋ ฅ
    ์œ ๋น„์ฟผํ„ฐ์Šค ์ปดํ“จํŒ…๊ฐœ๋ก 
    ์ปดํ“จํ„ฐ์˜ ์ดํ•ด
    spring
    Java
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
junbin2
[์ปดํ“จํ„ฐ๊ณผํ•™ ๊ฐœ๋ก ] 5๊ฐ• - ์•Œ๊ณ ๋ฆฌ์ฆ˜(1)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”