๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Knowledge/Algorithm

[Algorithm]์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ์š”์™€ ์„ฑ๋Šฅ๋ถ„์„: ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ์™„๋ฒฝ ๊ฐ€์ด๋“œ

by YJ Dev 2024. 7. 15.
728x90
๋ฐ˜์‘ํ˜•
SMALL

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

์ž๋ฃŒ๊ตฌ์กฐ ์„ฑ๋Šฅ๋ถ„์„


01. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ์š”๐Ÿ“š

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •์˜

์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํŠน์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ช…ํ™•ํ•œ ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์œ ํ•œํ•œ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์—ญ์‚ฌ

์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๋Š” ์šฉ์–ด๋Š” ํŽ˜๋ฅด์‹œ์•„ ์ˆ˜ํ•™์ž ์•Œ์ฝฐ๋ฆฌ์ฆˆ๋ฏธ(Al-Khwarizmi)์˜ ์ด๋ฆ„์—์„œ ์œ ๋ž˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์˜ ์ €์„œ์—์„œ ์œ ๋ž˜๋œ ์ด ์šฉ์–ด๋Š” ํ˜„๋Œ€ ์ปดํ“จํ„ฐ ๊ณผํ•™์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ์ƒ ์ƒํ™œ์—์„œ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์‹œ

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

02. ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ข…๋ฅ˜๐Ÿงฉ

๋ถ„๋ฅ˜ ๊ธฐ์ค€์— ๋”ฐ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ข…๋ฅ˜

์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ๋ฒ„๋ธ” ์ •๋ ฌ: ์ธ์ ‘ํ•œ ๋‘ ์›์†Œ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ •๋ ฌํ•˜๋Š” ๋‹จ์ˆœํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.
  • ํ€ต ์ •๋ ฌ: ๋ถ„ํ•  ์ •๋ณต ๊ธฐ๋ฒ•์„ ์ด์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ •๋ ฌํ•ฉ๋‹ˆ๋‹ค.

ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์ด์ง„ ํƒ์ƒ‰: ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ์—์„œ ์ค‘๊ฐ„ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํƒ์ƒ‰ ๋ฒ”์œ„๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์—ฌ๊ฐ€๋ฉฐ ์ฐพ์Šต๋‹ˆ๋‹ค.
  • ์„ ํ˜• ํƒ์ƒ‰: ๋ฆฌ์ŠคํŠธ์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ˆœ์ฐจ์ ์œผ๋กœ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜ํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜: ๊ฐ€์ค‘์น˜ ๊ทธ๋ž˜ํ”„์—์„œ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.
  • A ์•Œ๊ณ ๋ฆฌ์ฆ˜*: ํœด๋ฆฌ์Šคํ‹ฑ์„ ์ด์šฉํ•œ ์ตœ๋‹จ ๊ฒฝ๋กœ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

03. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ๋ถ„์„ ๐Ÿ“ˆ

์„ฑ๋Šฅ๋ถ„์„์˜ ํ•„์š”์„ฑ

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์€ ํšจ์œจ์ ์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์„ฑ๋Šฅ ๋ถ„์„์„ ํ†ตํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์žฅ๋‹จ์ ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ• (Big-O Notation)

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

์‹œ๊ฐ„ ๋ณต์žก๋„ ์˜ˆ์‹œ

  • O(1): ์ƒ์ˆ˜ ์‹œ๊ฐ„ ๋ณต์žก๋„. ์ž…๋ ฅ ํฌ๊ธฐ์— ์ƒ๊ด€์—†์ด ์ผ์ •ํ•œ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.
  • O(n): ์„ ํ˜• ์‹œ๊ฐ„ ๋ณต์žก๋„. ์ž…๋ ฅ ํฌ๊ธฐ์— ๋น„๋ก€ํ•˜์—ฌ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
  • O(n^2): ์ด์ฐจ ์‹œ๊ฐ„ ๋ณต์žก๋„. ์ž…๋ ฅ ํฌ๊ธฐ์— ๋Œ€ํ•ด ์ œ๊ณฑ์˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.

๊ณต๊ฐ„ ๋ณต์žก๋„ ์˜ˆ์‹œ

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

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํšจ์œจ์„ฑ ํ‰๊ฐ€ ๋ฐฉ๋ฒ•

  • ์ตœ์„  ๊ฒฝ์šฐ: ๊ฐ€์žฅ ์ด์ƒ์ ์ธ ์ƒํ™ฉ์—์„œ์˜ ์„ฑ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ์ตœ์•… ๊ฒฝ์šฐ: ๊ฐ€์žฅ ๋น„ํšจ์œจ์ ์ธ ์ƒํ™ฉ์—์„œ์˜ ์„ฑ๋Šฅ์ž…๋‹ˆ๋‹ค.
  • ํ‰๊ท  ๊ฒฝ์šฐ: ์ผ๋ฐ˜์ ์ธ ์ƒํ™ฉ์—์„œ์˜ ์„ฑ๋Šฅ์ž…๋‹ˆ๋‹ค.

04. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ ๊ฐœ์„  ๋ฐฉ๋ฒ•๐Ÿ› ๏ธ

์ตœ์ ํ™” ๊ธฐ๋ฒ•

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ถˆํ•„์š”ํ•œ ์—ฐ์‚ฐ์„ ์ค„์ด๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ์„ ํƒ

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

์ฝ”๋“œ ์ตœ์ ํ™”

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

728x90
๋ฐ˜์‘ํ˜•