ํฌ์ŠคํŠธ

๐ŸŒ“ ์•Œ๊ณ ๋ฆฌ๋“ฌ ์„ฑ๋Šฅ ํ‰๊ฐ€

@ 3~5์ฐจ์‹œ

๐Ÿ’ซ ์•Œ๊ณ ๋ฆฌ๋“ฌ์˜ ์„ฑ๋Šฅ ํ‰๊ฐ€, F Evaluation


์–ด๋–ค ์•Œ๊ณ ๋ฆฌ๋“ฌ์ด ๋” ์ข‹๋ƒ์— ๋Œ€ํ•œ ํ‰๊ฐ€ ๊ธฐ์ค€์€ ์‹คํ–‰ ์‹œ๊ฐ„๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„.
(๋™์ผํ•œ ๋ชฉ์ ์„ ๊ฐ€์ง€๊ณ , ๊ฒฐ๊ณผ๊ฐ€ ์ •ํ™•ํ•˜๋‹ค๋Š” ๊ฐ€์ •ํ•˜์—)

ํ˜„๋Œ€์— ์™€์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋„‰๋„‰ํ•ด์ ธ์„œ, ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ข€ ๋” ์šฐ์„ ์ ์œผ๋กœ ๋ด„.
(๋ฌผ๋ก  ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•œ์ •์ ์ธ ์ž„๋ฒ ๋””๋“œ๋Š” ๊ณต๊ฐ„๋„ ์ค‘์š”)

  • ๊ฐ™์€ ๋ฌธ์ œ, ๋‹ค๋ฅธ ์„ฑ๋Šฅ
    • ๋‹คํ•ญ์‹ ๊ณ„์‚ฐ : ๊ฐ ํ•ญ ๊ณ„์‚ฐ < ํ˜ธ๋„ˆ์˜ ๊ทœ์น™
    • 1~n ์ •์ˆ˜ ํ•ฉ : for ๊ณ„์‚ฐ < ๋“ฑ์ฐจ์ˆ˜์—ด์˜ ํ•ฉ ๊ณต์‹
    • ์ •์˜์—ญ ๋ฐ– ์š”์†Œ ํƒ์ƒ‰ : ์ˆœ์ฐจํƒ์ƒ‰ < ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ์ˆœ์ฐจํƒ์ƒ‰ (Invalid ๊ฐ’์—์„œ Early Return) < ์ด์ง„ํƒ์ƒ‰
  • ์‹คํ–‰ ์‹œ๊ฐ„ ์ธก์ •์˜ ๋ฌธ์ œ์ 
    • ์ปดํ“จํ„ฐ ์ŠคํŽ™์— ๋”ฐ๋ผ
    • ์–ธ์–ด, ์ปดํŒŒ์ผ๋Ÿฌ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ ๋ฐ ์ฝ”๋”ฉ ํ‘œ์ค€์— ๋”ฐ๋ผ
    • ์‹คํ–‰ํ•  ๋•Œ๋งˆ๋‹ค ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Œ
    • ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ž…๋ ฅ์— ๋Œ€ํ•ด, ์ •ํ™•ํ•œ ๊ฒฐ๊ณผ(!๊ทผ์‚ฌ)๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ์™„์„ฑํ•ด์•ผ

์‹คํ–‰ ์‹œ๊ฐ„ ์ธก์ •์€ ์•Œ๊ณ ๋ฆฌ๋“ฌ ์ž์ฒด์˜ ์„ฑ๋Šฅ ์ด์™ธ์˜, ์™ธ๋ถ€ ์˜ํ–ฅ์„ ๋งŽ์ด ๋ฐ›๋Š”๋‹ค.
โ†’ ๋ณต์žก๋„ ๋ถ„์„

์–ด๋ฆผ์žก์•„ 3~5์–ต ๋ฒˆ์˜ ์—ฐ์‚ฐ/1์ดˆ
์–ด๋–ค ์—ฐ์‚ฐ์„ ํ•˜๋Š”์ง€์— ๋”ฐ๋ผ
๋‹จ์ˆœํ•œ ์—ฐ์‚ฐ : ๋น„ํŠธ AND, OR, ๋น„๊ต, ๋ง์…ˆ
๋ณต์žกํ•œ ์—ฐ์‚ฐ : ๊ณฑ์…ˆ, ๋‚˜๋ˆ—์…ˆ, ๋Œ€์ž…, ํ•จ์ˆ˜ ํ˜ธ์ถœ

2000๋งŒ?

๋ณดํ†ต ๋ฌธ์ œ์—์„œ 1~5์ดˆ ์ •๋„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค
-> ์ž…๋ ฅ ๋ฒ”์œ„๋ฅผ ๋ณด๊ณ  ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•˜๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์œ ์ถ”


๐Ÿ’ซ ๋ณต์žก๋„ ๋ถ„์„


๊ณ„์‚ฐ์ด๋‚˜ ์ถ”๋ก  ๋“ฑ์„ ํ†ตํ•˜์—ฌ ์•Œ๊ณ ๋ฆฌ๋“ฌ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์–‘์„ ๊ฒฐ์ •ํ•˜๋Š” ์ž‘์—…
(์‹œ๊ฐ„ ๋ณต์žก๋„, ๊ณต๊ฐ„ ๋ณต์žก๋„ = ์‹คํ–‰ ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„)

ํ˜„์‹ค์ ์œผ๋กœ, ์ธก์ • ์—†์ด ๋ถˆ๊ฐ€๋Šฅํ•œ๋ฐ, ์ธก์ •์€ ์™ธ๋ถ€ ์˜ํ–ฅ์„ ๋งŽ์ด ๋ฐ›์Œ
ํ˜„์‹ค์ ์ธ ๋Œ€์•ˆ์œผ๋กœ, ์‹คํ–‰์‹œ๊ฐ„์„ ๊ฐ€๋Š ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„์ ‘์  ์ง€ํ‘œ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ๊ธฐ์ค€์œผ๋กœ

์‹œ๊ฐ„ ๋ณต์žก๋„
์ž…๋ ฅ์˜ ํฌ๊ธฐ์™€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์˜ ์ƒ๊ด€๊ด€๊ณ„

  • ์‹œ๊ฐ„ ๋ณต์žก๋„์˜ ๊ธฐ์ค€
    • ์—ฐ์‚ฐ ์‹คํ–‰ ํšŸ์ˆ˜
      • ์—ฐ์‚ฐ ์‹คํ–‰ ํšŒ์ˆ˜๋Š” n์— ๋Œ€ํ•œ ํ•จ์ˆ˜ ๊ผด T(n) = ๊ทธ๋ž˜ํ”„
        • ์ตœ๋Œ“๊ฐ’ ์ฐพ๊ธฐ : ํƒ์ƒ‰ ๋Œ€์ƒ ์ˆซ์ž์˜ ์ˆ˜์— ๋”ฐ๋ผ
        • ํ–‰๋ ฌ ๊ณฑ : ํ–‰๋ ฌ์˜ ํ–‰๊ณผ ์—ด์˜ ๊ฐ’์— ๋”ฐ๋ผ
        • ์ •๋ ฌ : ์ •๋ ฌ ๋Œ€์ƒ ์›์†Œ์˜ ์ˆ˜์— ๋”ฐ๋ผ
    • ๋ช…๋ น๋ฌธ ์‹คํ–‰ ํšŸ์ˆ˜
      • ํฐ ์•Œ๊ณ ๋ฆฌ๋“ฌ์—์„œ ์—ฐ์‚ฐ ์‹คํ–‰ ํšŸ์ˆ˜ ๊ณ„์‚ฐ ์–ด๋ ค์›€
    • ๊ธฐ์ค€์—ฐ์‚ฐ ์‹คํ–‰ ํšŸ์ˆ˜
      • ๊ธฐ์ค€์—ฐ์‚ฐ : ์‹คํ–‰ ์‹œ๊ฐ„์˜ ๊ณ„์‚ฐ์— ์žˆ์–ด์„œ ์˜ํ–ฅ์„ ๊ฐ€์žฅ ๋งŽ์ด ์ฃผ๋Š” ์—ฐ์‚ฐ
      • ๊ธฐ์ค€์—ฐ์‚ฐ์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋ ค์›€

N์ดํ•˜์˜ ์ˆ˜ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ 2์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ (N์€ 10์–ต ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜)
๋กœ๊ทธ์˜ ์ •์˜์— ์ž…๊ฐํ•ด์„œ k = LogN, O(LogN)

@ U ์ค‘๊ฐ„๊ณ ์‚ฌ ์ถœ์ œ : ๋ฒ„๋ธ” ์ •๋ ฌ, ๊ธฐ์ค€์—ฐ์‚ฐ ๊ธฐ์ค€ ์‹คํ–‰ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜์‹œ์˜ค. (n = 101, ๋“ฑ์ฐจ๋“ฑ๋น„)

์ ๊ทผ ๋ถ„์„, Asymptotic Analysis
= ๋ณต์žก๋„ ํ•จ์ˆ˜๋ฅผ โ€˜๋‹จ์ˆœํ•œโ€™ ๊ทผ์‚ฌ ํ•จ์ˆ˜(๋ฌดํ•œ์œผ๋กœ ๊ฐ€๋ฉด ๋น„์Šทํ•œ ๊ผด)๋กœ
โ†’ ์ตœ๊ณ  ์ฐจํ•ญ์„ ๊ณ„์ˆ˜๋ฅผ 1๋กœ ํ•˜์—ฌ ์ถ”์ถœ

๊ณ„์ˆ˜, ๋‚˜๋จธ์ง€ ํ•ญ ์ƒ๋žตํ•ด๋„ ๋˜๋‚˜?
โ†’ ๋ฌดํ•œ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก, ์‹์—์„œ ์ตœ๊ณ  ์ฐจํ•ญ ๋น„์œจ์€ ๊ฒ๋‚˜ ์ปค์ง„๋‹ค
โ†’ ๋ฌดํ•œ์œผ๋กœ ๊ฐˆ์ˆ˜๋ก, ๊ณ„์ˆ˜ < ์ง€์ˆ˜

๋ณต์žก๋„ ๋“ฑ๊ธ‰ - ์ž…๋ ฅ ํฌ๊ธฐ(n) ๋น„๋ก€ ๋ณต์žก๋„(๊ฒฐ๊ณผ, ์ฒ˜๋ฆฌ์‹œ๊ฐ„) ์ฆ๊ฐ€
โ†’ ์ƒ์ˆ˜, ๋กœ๊ทธ, ์„ ํ˜•, ์„ ํ˜•๋กœ๊ทธ, n์ฐจ, ์ง€์ˆ˜, ํŒฉํ† ๋ฆฌ์–ผ, โ€ฆ

@ ์ •๋ ฌ - ์„ ํ˜•๋กœ๊ทธ
@ ์ œ๊ณฑ - ํ–‰๋ ฌ ํ•ฉ
@ ์„ธ์ œ๊ณฑ - ํ–‰๋ ฌ ๊ณฑ

@ msps - ์ดˆ๋‹น ๋ฐฑ๋งŒ๋ฒˆ ์—ฐ์‚ฐ
@ ๋‹จ์ˆœ ์—ฐ์‚ฐ(๋น„ํŠธ ์—ฐ์‚ฐ ๋“ฑ)๊ณผ ์ƒ๋Œ€์  ๋ณต์žก ์—ฐ์‚ฐ๊ณผ์˜ ๊ดด๋ฆฌ
@ flops - ์ดˆ๋‹น ๋ถ€๋™์†Œ์ˆ˜์  ์—ฐ์‚ฐ

๊ณต๊ฐ„ ๋ณต์žก๋„ (Space Complexity)
์ž…๋ ฅ์˜ ํฌ๊ธฐ์™€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ณต๊ฐ„์˜ ์ƒ๊ด€๊ด€๊ณ„

512MB = 1.2์–ต๊ฐœ์˜ int
๊ธฐ์–ตํ•˜๋ฉด ์ข‹๋‹ค

int 1๊ฐœ๊ฐ€ 4๋ฐ”์ดํŠธ๋ผ๋Š” ๊ฑธ๋กœ ๊ธฐ์–ต
์˜ˆ๋ฅผ ๋“ค์–ด ํฌ๊ธฐ๊ฐ€ 5์–ต์ธ ๋ฐฐ์—ด์ด ํ•„์š”ํ•˜๋‹ค -> ํ‹€๋ฆฐ ํ’€์ด๋‹ˆ๊นŒ ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๊ณ ๋ฏผ


๐Ÿ’ซ ์ ๊ทผ ํ‘œ๊ธฐ๋ฒ•


@ U ์ค‘๊ฐ„๊ณ ์‚ฌ ์ถœ์ œ : (๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ๋งŒ n^2, ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด์„œ๋Š” n * log n ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๋Š” ์•Œ๊ณ ๋ฆฌ๋“ฌ์— ๋Œ€ํ•ด) Big O, Big ฮ˜, ์ตœ์•…์˜ ๊ฒฝ์šฐ ์˜๋ฏธ
-> โ€˜์ตœ์•…์˜ ๊ฒฝ์šฐโ€™๊ฐ€ ๋ถ™์œผ๋ฉด ์„ธํƒ€๊ฐ€ ๋” ์ ์ ˆํ•˜๋‹ค O๋„ ํ‹€๋ฆฐ ๊ฑด ์•„๋‹ˆ์ง€๋งŒ..
-> ์ตœ์•…์˜ ๊ฒฝ์šฐ ์„ธํƒ€์™€ ๊ทธ๋ƒฅO๋Š” ๊ฐ™์€ ๋œป์ธ๊ฐ€? X

Big O, Big ฮ˜, Big ฮฉ
@ ์†Œ๋ฌธ์ž์™€ ๊ตฌ๋ณ„๋˜๊ธฐ์—, Big ๋ถ™์—ฌ์•ผ

๐Ÿซง Big O, ์ ๊ทผ์  ์ƒํ•œ

์•„๋ฌด๋ฆฌ ๋งŽ์•„๋„ ์ด์ •๋„ ๊ฑธ๋ฆฐ๋‹ค

I.E.
โ†’ T(n) = 2x + 4 ์ผ๋•Œ, O(3x)
โ†’ 5n^2 + 3n - 10 = O(n^3)
โ†’ 5n^2 + 3n - 10 = O(n^2)
โ†’ 5n^2 + 3n - 10 != O(n)

When
โ†’ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์ฆ๊ฐ€์œจ์ด ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ
โ†’ ์ •ํ™•ํ•œ ๋ณต์žก๋„๋Š” ๋ชจ๋ฅด๊ณ , ์ƒํ•œ์€ ์•„๋Š” ๊ฒฝ์šฐ
โ†’ ๊ด€๋ก€์  (๊ทธ๋ƒฅ ๋งŽ์ด ์จ์„œ)

์ƒํ•œ์˜ ๋ถˆํ™•์‹ค์„ฑ (๋นก๋นกํ•œ ์ƒํ•œ, ๋Š์Šจํ•œ ์ƒํ•œ)
โ†’ ์ •์˜๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๊ฐ€์žฅ ๋‚ฎ์€ ์ฐจ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์›์น™

@ =์€ equal, is๊ฐ€ ์•„๋‹ˆ๋ผ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค ๋ผ๋Š” ์˜๋ฏธ

๐Ÿซง Big ฮฉ, ์ ๊ทผ์  ํ•˜ํ•œ

์ตœ์†Œํ•œ ์ด์ •๋„ ๊ฑธ๋ฆฐ๋‹ค

I.E.
โ†’ T(n) = 2x + 4 ์ผ๋•Œ, ฮฉ(n)

When
โ†’ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์— ๋”ฐ๋ผ ์ฆ๊ฐ€์œจ์ด ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ
โ†’ ์ •ํ™•ํ•œ ๋ณต์žก๋„๋Š” ๋ชจ๋ฅด๊ณ , ํ•˜ํ•œ์€ ์•„๋Š” ๊ฒฝ์šฐ
โ†’ ๋‹ค๋ฅธ ์ ๊ทผ ํ‘œ๊ธฐ๋ฒ• ๋ณด์™„ (๋ณดํ†ต ํ˜ผ์ž ์“ฐ์ง€ ์•Š์Œ)

f(n) = O(g(n)) <=> g(n) = ฮฉ(f(n))

๐Ÿซง Big ฮ˜, ์ ๊ทผ์  ์ƒํ•œ๊ณผ ํ•˜ํ•œ์ด ์ผ์น˜

๋Œ€๋žต ์ด์ •๋„๋‹ค

I.E.
โ†’ T(n) = 2x + 4 ์ผ๋•Œ, ฮ˜(n)

When
โ†’ ์ •ํ•™ํ•œ ๋ณต์žก๋„ ํ•จ์ˆ˜๋ฅผ ์•„๋Š” ๊ฒฝ์šฐ

๐Ÿซง BlaBla

๋ณต์žก๋„ - O, ฮฉ
(~ํ•œ ๊ฒฝ์šฐ) ๋ณต์žก๋„ - ฮ˜

๋™์ผํ•œ ๊ธฐ๋Šฅ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต
A = O(n^2), B = O(n^3)

A๊ฐ€ B๋ณด๋‹ค ๋น ๋ฅด๋‹ค X
A๊ฐ€ B๋ณด๋‹ค ์ ๊ทผ์ ์œผ๋กœ ๋น ๋ฅด๋‹ค O

n์˜ ๊ฐ’์ด ๊ณ ๋ ค๋˜์–ด์•ผ ํ•œ๋‹ค
I.E. A = 10^5 * n^2, B = n^3, n < 10^5 ๋ผ๋ฉด A < B
n์ด ์ž‘์œผ๋ฉด ์‹œ๊ฐ„ ์ฐจ์ด ๋ณ„๋กœ ์—†๊ฑฐ๋‚˜, ์˜คํžˆ๋ ค ์ ๊ทผ ๋ณต์žก๋„๊ฐ€ ๋‚ฎ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๋” ๋Š๋ฆด ์ˆ˜ ์žˆ๋‹ค

์ ๊ทผ ๋ณต์žก๋„๋Š” ์ˆ˜ํ•™๊ณผ ๊ณตํ•™์˜ ์ ˆ๋ฌ˜ํ•œ ๊ท ํ˜•์„ ์š”๊ตฌ
@ TODO : ๊ณตํ•™ ?

์ ๊ทผ ๋ณต์žก๋„ ์‰ฝ๊ฒŒ ๊ตฌํ•˜๊ธฐ

  1. n์— ๋”ฐ๋ผ, ์ˆœ์ฐจ์ ์ธ ๋ช…๋ น๋ฌธ(๋ธ”๋ก)์€ ์ ๊ทผ ๋ณต์žก๋„ ํ•จ์ˆ˜๋ฅผ ๋”ํ•œ๋‹ค
  2. n์— ๋”ฐ๋ผ, ์ค‘์ฒฉ๋œ ๋ช…๋ น๋ฌธ(๋ธ”๋ก)์€ ์ ๊ทผ ๋ณต์žก๋„ ํ•จ์ˆ˜๋ฅผ ๊ณฑํ•œ๋‹ค
  3. ๋ถ€ํ”„๋กœ๊ทธ๋žจ(ํ•จ์ˆ˜)๋„ ์ ๊ทผ ๋ณต์žก๋„๋ฅผ ๋ฐ˜์˜

์ตœ์•…, ์ตœ์„ , ํ‰๊ท  ๋ณต์žก๋„

n ๊ฐ™๋”๋ผ๋„ ์ง‘ํ•ฉ-์ˆœ์„œ์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„ ๋‹ฌ๋ผ์ง€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
Big O ์ ๊ทผ์„ ์ƒํ•œ ๋งŒ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ๋„

์ตœ์„  <= ํ‰๊ท  <= ์ตœ์•… ๋ณต์žก๋„
์ตœ์•…๊ณผ ์ตœ์„  ๋ณต์žก๋„๊ฐ€ ๊ฐ™๋‹ค๋ฉด, ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ๋„ ๊ฐ™๊ณ , ์ด๋Š” ฮ˜ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ

ํ‰๊ท  ๋ณต์žก๋„
์ตœ์•…์— ๊ฐ€๊นŒ์šด, ๋ฒ„๋ธ” ์ •๋ ฌ, ์‚ฝ์ž… ์ •๋ ฌ
์ตœ์„ ์— ๊ฐ€๊นŒ์šด, ํ€ต ์ •๋ ฌ

์˜๋ฏธ ์ฐจ์ด

์ตœ์•…์˜ ๊ฒฝ์šฐ ฮ˜(n^2)
โ†’ ์ตœ์•…์˜ ๊ฒฝ์šฐ n^2๊ฐ€ ๊ฑธ๋ฆฐ๋‹ค
์ตœ์•…์˜ ๊ฒฝ์šฐ O(n^2)
โ†’ ์ตœ์•…์˜ ๊ฒฝ์šฐ, ์ •ํ™•ํ•˜๊ฒŒ๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๊ทธ ์ƒํ•œ์ด n^2์ด๋‹ค

์ตœ์•…์˜ ๊ฒฝ์šฐ, ์ตœ์„ ์˜ ๊ฒฝ์šฐ, ํ‰๊ท ์ ์ธ ๊ฒฝ์šฐ ฮ˜(~)
== O(~), ฮฉ(~)


๐Ÿ’ซ Big O Notation


์ฝ”ํ…Œ์—์„œ๋Š” ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•๋งŒ ๋ณด๋ฉด ๋œ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์–ผ๋งˆ๋‚˜ ๋น ๋ฅธ์ง€ ํ‘œ์‹œํ•˜๋Š” ํŠน๋ณ„ํ•œ ๋ฐฉ๋ฒ•
์ฃผ์–ด์ง„ ์‹์„ ๊ฐ’์ด ๊ฐ€์žฅ ํฐ ๋Œ€ํ‘œํ•ญ๋งŒ ๋‚จ๊ฒจ์„œ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐฉ๋ฒ•.

i.e. n๊ฐœ์˜ ์›์†Œ, ๋‹จ์ˆœ ํƒ์ƒ‰์€ n๋ฒˆ ์—ฐ์‚ฐ, O(n)
์ดˆ ๊ฐ™์€ ์‹œ๊ฐ„ ๋‹จ์œ„๋Š” ์–ด๋””๋กœ? ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์€ ์†๋„๋ฅผ ์‹œ๊ฐ„ ๋‹จ์œ„๋กœ ์„ธ์ง€ ์•Š์Œ
์—ฐ์‚ฐ ํšŸ์ˆ˜๋ฅผ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ

๐Ÿซง ์ฃผ์˜ : ์•Œ๊ณ ๋ฆฌ๋“ฌ๊ฐ„ ์†๋„ ๋น„๊ต ์‹œ

100๊ฐœ์˜ ์›์†Œ, ๋‹จ์ˆœ 100๋ฒˆ, ์ด์ง„ 7๋ฒˆ
์ด์ง„ ํƒ์ƒ‰์€ ๋‹จ์ˆœ ํƒ์ƒ‰๋ณด๋‹ค 15๋ฐฐ ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ๋“ฌ์ด๋‹ค? XXX

10์–ต๊ฐœ์˜ ์›์†Œ, ๋‹จ์ˆœ 10์–ต๋ฒˆ, ์ด์นœ 32๋ฒˆ
์ด ๊ฒฝ์šฐ์—๋Š” ์ด์ง„ ํƒ์ƒ‰์ด ๋‹จ์ˆœ ํƒ์ƒ‰๋ณด๋‹ค 3์ฒœ3๋ฐฑ๋งŒ๋ฐฐ ๋น ๋ฅด๋‹ค

๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๋Š” ๋น„์œจ์ด ๋‹ค๋ฅด๋‹ค

-> ์•Œ๊ณ ๋ฆฌ๋“ฌ์˜ ์‹คํ–‰์‹œ๊ฐ„์ด ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆฌ๋Š”์ง€๋งŒ ๊ณ ๋ คํ•  ๊ฒƒ์ด ์•„๋‹ˆ๋ผ
-> ๋ฆฌ์ŠคํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”์ง€๋ฅผ ํŒŒ์•…ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค

๐Ÿซง ์ฃผ์˜ : Big O๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ๊ฒƒ

i.e. ๋‹จ์ˆœ ํƒ์ƒ‰, ์‚ฌ์ „์—์„œ a๋ฅผ ํ•œ ๋ฒˆ์— ์ฐพ์•˜์œผ๋ฏ€๋กœ O(1)? XXX

๋น…์˜ค๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ์— ๋Œ€ํ•œ ๊ฒƒ
์ ˆ๋Œ€๋กœ ~๋ณด๋‹ค๋Š” ๋Š๋ ค์ง€์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์— ๋Œ€ํ•œ ๋ณด์žฅ

๐Ÿซง ๋น… ์˜ค ์‹คํ–‰์‹œ๊ฐ„์˜ ์˜ˆ

  • O(1) : ์ƒ์ˆ˜ ์‹œ๊ฐ„
    • 5, 16, 36
  • O(LogN) ๋กœ๊ทธ ์‹œ๊ฐ„ Logarithmic Time
    • ์ด์ง„ํƒ์ƒ‰
  • O(N) ์„ ํ˜• ์‹œ๊ฐ„ Linear Time (๋ฐ์ดํ„ฐ ํฌ๊ธฐ์™€ ์‹คํ–‰ ํšŸ์ˆ˜๊ฐ€ ๋˜‘๊ฐ™์€)
    • 5N + 3, 2N + 10LogN, 10N
    • ๋‹จ์ˆœํƒ์ƒ‰
  • O(NLogN) ๋‹คํ•ญ ์‹œ๊ฐ„
    • NLogN + 30N + 10, 5NLogN + 6
    • ํ€ต ์ •๋ ฌ ๊ฐ™์ด ๋น ๋ฅธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ๋“ฌ
  • O(N2) ๋‹คํ•ญ ์‹œ๊ฐ„
    • N2 + 2N + 4, 6N2 + 20N + 10LogN
    • ์„ ํƒ ์ •๋ ฌ๊ณผ ๊ฐ™์ด ๋Š๋ฆฐ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ๋“ฌ
  • O(2N) ์ง€์ˆ˜ ์‹œ๊ฐ„
  • O(N!)
    • 12!์€ ์•ฝ 5์–ต
    • ์™ธํŒ์›(์„ธ์ผ์ฆˆ๋งจ) ๋ฌธ์ œ์™€ ๊ฐ™์ด ์ •๋ง ๋Š๋ฆฐ ์•Œ๊ณ ๋ฆฌ๋“ฌ
      • Traveling Salesperson Problem
      • ๋ชจ๋“  ๋„์‹œ๋Š” ๊ฐ€์žฅ ์งง์€ ๊ฑฐ๋ฆฌ์˜(์‹œ๊ฐ„์˜) ๊ฒฝ๋กœ
      • ์•„์ง ์ด๊ฒƒ๋ณด๋‹ค ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ๋“ฌ์ด ์•Œ๋ ค์ง€์ง€ ์•Š์Œ
      • ๋Œ€๋žต์ ์ธ ๋‹ต์„ ์–ป๋Š” ๊ฒƒ ๋ฐ–์— (์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ)
N์˜ ํฌ๊ธฐํ—ˆ์šฉ ์‹œ๊ฐ„ ๋ณต์žก๋„
N <= 11O(N!)
N <= 25O(2n)
N <= 100O(N4)
N <= 500O(N3)
N <= 3,000O(N2LogN)
N <= 5,000O(N2)
N <= 1,000,000O(NLogN)
N <= 10,000,000O(N)
๊ทธ ์ด์ƒO(LogN), O(1)

์ ˆ๋Œ€์ ์ธ ๊ธฐ์ค€์€ ์•„๋‹ˆ๋‹ค (๋Š๋‚Œ๋งŒ)

๋กœ๊ทธ

log10100์ด๋ผ๋Š” ์ˆ˜๋Š” โ€œ10์„๋ช‡ ๋ฒˆ ๊ณฑํ•ด์•ผ 100์ด ๋ ๊นŒ?โ€ ํ•˜๊ณ  ๋ฌป๊ณ  ์žˆ๋Š” ๊ฒƒ
10 * 10 = 100 ์ด๋‹ˆ๊นŒ ๋‹ต์€ 2
๊ทธ๋Ÿฌ๋‹ˆ๊นŒ log10100 = 2
์ฆ‰, ๋กœ๊ทธ๋Š” ๊ฑฐ๋“ญ์ œ๊ณฑ์˜ ๋ฐ˜๋Œ€๋ง

๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์—์„œ ๋ชจ๋“  log ํ•จ์ˆ˜๋Š” log2๋ฅผ ๋œปํ•œ๋‹ค

๐Ÿซง ์š”์•ฝ

  • ์•Œ๊ณ ๋ฆฌ๋“ฌ์˜ ์†๋„๋Š” ์‹œ๊ฐ„์ด ์•„๋‹ˆ๋ผ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ์–ด๋–ป๊ฒŒ ์ฆ๊ฐ€ํ•˜๋Š”์ง€๋กœ ์ธก์ •
  • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ๋Š˜์–ด๋‚  ๋•Œ ์•Œ๊ณ ๋ฆฌ๋“ฌ์˜ ์‹คํ–‰์†๋„๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ฆ๊ฐ€ํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค
  • ์•Œ๊ณ ๋ฆฌ๋“ฌ์˜ ์‹คํ–‰์‹œ๊ฐ„์€ ๋น… ์˜ค ํ‘œ๊ธฐ๋ฒ•
  • O(log n)์€ O(n)๋ณด๋‹ค ๋น ๋ฅด๊ณ , ์ฐพ์œผ๋ ค๋Š” ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด ์ƒ๋Œ€์ ์œผ๋กœ ๋” ๋นจ๋ผ์ง„๋‹ค.
์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.