๐Ÿถ Programming/Algorithm

1. Algorithm ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ง€ ์› 2022. 9. 29. 11:15

์•Œ๊ณ ๋ฆฌ์ฆ˜

์•Œ๊ณ ๋ฆฌ์ฆ˜

์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์œ ํ•œํ•œ ๋‹จ๊ณ„๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ๋‚˜ ๋ฐฉ๋ฒ•์ด๋‹ค. ์ฃผ๋กœ ์ปดํ“จํ„ฐ ์šฉ์–ด๋กœ ์“ฐ์ด๋ฉฐ, ์ปดํ“จํ„ฐ๊ฐ€ ์–ด๋–ค ์ผ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ๊ณ„์  ๋ฐฉ๋ฒ•์„ ๋งํ•œ๋‹ค.

์ฆ‰, ์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ ˆ์ฐจ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์ปดํ“จํ„ฐ ๋ถ„์•ผ์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€

  • ์˜์‚ฌ์ฝ”๋“œ(์Šˆ๋„์ฝ”๋“œ, Pseudocode)์™€ ์ˆœ์„œ๋„

 

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ ์ธก์ •

์ข‹์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ์ •ํ™•์„ฑ : ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋Š”๊ฐ€
  • ์ž‘์—…๋Ÿ‰ : ์–ผ๋งˆ๋‚˜ ์ ์€ ์—ฐ์‚ฐ์œผ๋กœ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด๋‚ด๋Š”๊ฐ€
  • ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ : ์–ผ๋งˆ๋‚˜ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€
  • ๋‹จ์ˆœ์„ฑ : ์–ผ๋งˆ๋‚˜ ๋‹จ์ˆœํ•œ๊ฐ€
  • ์ตœ์ ์„ฑ : ๋” ์ด์ƒ ๊ฐœ์„ ํ•  ์—ฌ์ง€์—†์ด ์ตœ์ ํ™”๋˜์—ˆ๋Š”๊ฐ€

 

์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ฐ€๋Šฅ

⇒ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€?

 

์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ ๋ถ„์„ ํ•„์š”

  • ๋งŽ์€ ๋ฌธ์ œ์—์„œ ์„ฑ๋Šฅ ๋ถ„์„์˜ ๊ธฐ์ค€์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ž‘์—…๋Ÿ‰์„ ๋น„๊ตํ•œ๋‹ค.

 

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

์ธก์ • ๋ฐฉ๋ฒ•

  • ์‹ค์ œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ์ธก์ •
  • ์‹คํ–‰๋˜๋Š” ๋ช…๋ น๋ฌธ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณ„์‚ฐ

์‹œ๊ฐ„ ๋ณต์žก๋„ โ‰“ ๋น…-์˜ค(O) ํ‘œ๊ธฐ๋ฒ•

 

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

์‹œ๊ฐ„ ๋ณต์žก๋„ ํ•จ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ๋ ฅ์„ ์ฃผ๋Š” n์— ๋Œ€ํ•œ ํ•ญ๋งŒ์„ ํ‘œ์‹œ

๊ณ„์ˆ˜(Coefficient)๋Š” ์ƒ๋žตํ•˜์—ฌ ํ‘œ์‹œ

 

ex)

O(3n + 2) = O(3n) = O(n)

O(2n² + 10n + 100) = O(n²)

O(4) = O(1)

: ์ตœ๊ณ ์ฐจํ•ญ๋งŒ ์„ ํƒ, ๊ณ„์ˆ˜ ์ œ๊ฑฐ

 

n๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ ์ €์žฅํ•œ ํ›„ ๊ฐ ๋ฐ์ดํ„ฐ์— 1์”ฉ ์ฆ๊ฐ€์‹œํ‚จ ํ›„ ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„? → O(n)

'๐Ÿถ Programming > Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

5. Search ๊ฒ€์ƒ‰  (0) 2022.10.19
4. Array Extra ๋ฐฐ์—ด  (0) 2022.10.15
3. Sort ์ •๋ ฌ  (0) 2022.10.02
2. Array ๋ฐฐ์—ด  (2) 2022.10.01