• [์•Œ๊ณ ๋ฆฌ์ฆ˜] ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐœ๋…๊ณผ ์„ฑ๋Šฅ ๋ถ„์„(์‹œ๊ฐ„ ๋ณต์žก๋„, ๋น…-์˜ค ํ‘œ๊ธฐ๋ฒ•)

    2024. 1. 25.

    by. @leeeun

    ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์ž๋ฃŒ๊ตฌ์กฐ

    • ์•Œ๊ณ ๋ฆฌ์ฆ˜=์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๊ฐ€๋Š” ๋…ผ๋ฆฌ์ ์ธ ๊ณผ์ •
    • ๋ฐ์ดํ„ฐ์™€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ๊ด€๊ณ„
    • ์ž๋ฃŒ๊ตฌ์กฐ) ํšจ์œจ์  ์ ‘๊ทผ๊ณผ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์ž๋ฃŒ๋ฅผ ๊ตฌ์„ฑ, ๊ด€๋ฆฌ, ์ €์žฅํ•˜๋Š” ๊ฒƒ
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜) ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ •ํ•ด์ง„ ์ผ๋ จ์˜ ๋‹จ๊ณ„์ ์ธ ์ ˆ์ฐจ๋‚˜ ๋ฐฉ๋ฒ•

     

    ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ‘œํ˜„๋ฒ•

     

    ์ผ๋ฐ˜ ์–ธ์–ด ํ‘œํ˜„

    • ์ผ๋ฐ˜์ ์ธ ์ž์—ฐ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„ค๋ช…ํ•˜๋“ฏ์ด ํ‘œํ˜„

    ์ˆœ์„œ๋„ (flowchart) ๋ฅผ ์ด์šฉํ•œ ํ‘œํ˜„

    • ์ˆœ์„œ๋„(flowchart)๋ž€ ์–ด๋– ํ•œ ์ผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ณผ์ •์„ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ„๋‹จํ•œ ๊ธฐํ˜ธ์™€ ๋„ํ˜•์œผ๋กœ ๋„์‹ํ™”ํ•œ ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

    ์˜์‚ฌ์ฝ”๋“œ(Pseudo code)๋ฅผ ์ด์šฉํ•œ ํ‘œํ˜„

    • ์˜์‚ฌ์ฝ”๋“œ → ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด์™€ ์ผ๋ฐ˜ ์–ธ์–ด์˜ ์ค‘๊ฐ„ ํ˜•ํƒœ
    • ์ •ํ•ด์ง„ ๋ฌธ๋ฒ•์ด ์—†์–ด์„œ ์ž์œ ๋กญ๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค.

    ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋ฐ”๋กœ ์ž‘์„ฑ

     

    ํ˜ผํ•ฉ ํ˜•ํƒœ

    • ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ฐ”๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, ๋ณต์žกํ•œ ๊ฑด ์˜์‚ฌ์ฝ”๋“œ, ์ˆœ์„œ๋„ ๋“ฑ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ํ™œ์šฉ

     

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

    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ ๋ถ„์„์—๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„(time complexity)์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์–ต ๊ณต๊ฐ„์„ ๋ถ„์„ํ•˜๋Š” ๊ณต๊ฐ„ ๋ณต์žก๋„(space complexity)๊ฐ€ ์กด์žฌํ•œ๋‹ค.
    • ์‹œ๊ฐ„ ๋ณต์žก๋„: ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์—ฐ์‚ฐ์˜ ํšŸ์ˆ˜
    • ๊ณต๊ฐ„ ๋ณต์žก๋„: ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ

    ๊ทธ๋Ÿฌ๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ณต์žก๋„๋ฅผ ์ด์•ผ๊ธฐํ•  ๋•Œ ๋Œ€๊ฒŒ๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๋งํ•œ๋‹ค.(์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ฐจ์ง€ํ•˜๋Š” ๊ณต๊ฐ„๋ณด๋‹ค๋Š” ์‹คํ–‰์‹œ๊ฐ„์— ๋” ํ™”๋‘๋ฅผ ๋‘”๋‹ค.)

     

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

    • ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ด๋ฃจ๊ณ  ์žˆ๋Š” ์—ฐ์‚ฐ๋“ค์ด ์ž…๋ ฅ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋ช‡๋ฒˆ์ด๋‚˜ ์‹คํ–‰๋˜๋Š”์ง€๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.
    • ์ž…๋ ฅ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก A<B<C ์ˆœ์œผ๋กœ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฏ€๋กœ C์˜ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค.
    • ์•Œ๊ณ ๋ฆฌ์ฆ˜ A์™€ ๊ฐ™์€ ๊ฒƒ์€ ์‹ค์ œ๋กœ ์ž˜ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

     

    ๋น…-์˜ค ํ‘œ๊ธฐ๋ฒ•

    • ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ฑ๋Šฅ ํ‘œ๊ธฐ๋ฒ•์ด๋‹ค.
    • ๊ฐ€์žฅ ๋†’์€ ํ•ญ๋งŒ ํ‘œ๊ธฐํ•˜๊ณ  ๊ณ„์ˆ˜๋Š” ์ƒ๋žตํ•œ๋‹ค. (์ž๋ฃŒ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์ฐจ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ํฐ ํ•ญ์ด ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ , ๋‹ค๋ฅธ ํ•ญ๋“ค์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋ฌด์‹œ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

    • ์ •ํ™•ํ•œ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋Œ€๋žต์ ์ธ ์‹œ๊ฐ„ ์ธก์ •์„ ์œ„ํ•œ ๊ฒƒ์ด๋‹ค.
    • ๋น…์˜ค๋Š” ํ•จ์ˆ˜์˜ ์ƒํ•œ์„ ํ‘œ์‹œํ•œ๋‹ค.

     

    ๋น…-์˜ค ํ‘œ๊ธฐ๋ฒ•์˜ ๋Œ€ํ‘œ์ ์ธ ํ•จ์ˆ˜

    • ๋ฐ‘์—์„œ๋ถ€ํ„ฐ ์ƒ์ˆ˜ํ˜•, ๋กœ๊ทธํ˜•, ์„ ํ˜•, ๋กœ๊ทธ์„ ํ˜•, 2์ฐจํ˜•, ์ง€์ˆ˜ํ˜• ์ˆœ
    • ๊ทธ ์œ„์— ํŒฉํ† ๋ฆฌ์–ผํ˜•๋„ ์žˆ์Œ

     

    • ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ผ์ˆ˜๋ก ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ์„œ ์—ฐ์‚ฐ ์ˆ˜๊ฐ€ ๊ฐ€ํŒŒ๋ฅด๊ฒŒ ์ฆ๊ฐ€ํ•œ๋‹ค.

     

    ๋น…-์˜ค๋ฉ”๊ฐ€ ํ‘œ๊ธฐ๋ฒ• Ω(N)

    • ํ•จ์ˆ˜์˜ ํ•˜ํ•œ์„ ํ‘œ๊ธฐ
    • f(n) ≥ Ω(g(n)) ํ•จ์ˆ˜ f์˜ ์ฆ๊ฐ€์†๋„๊ฐ€ g๋ณด๋‹ค ๋Š๋ฆฌ์ง€ ์•Š๋‹ค.
    • ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ Ω(f(n))์ด๋ผ๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰์—๋Š” ์ ์–ด๋„ f(n)์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ํ•„์š”ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.

    => Ω(f(n))์€ ์ตœ๊ณ ์ฐจํ•ญ์˜ ์ฐจ์ˆ˜๊ฐ€ f(n)๊ณผ ์ผ์น˜ํ•˜๊ฑฐ๋‚˜ ๋” ํฐ ํ•จ์ˆ˜์˜ ์ง‘ํ•ฉ

     

     

    ๋น…-์„ธํƒ€ ํ‘œ๊ธฐ๋ฒ• Θ(N)

    • ํ•จ์ˆ˜์˜ ํ•˜ํ•œ์ธ ๋™์‹œ์— ์ƒํ•œ์„ ํ‘œ์‹œ
    • f(n) = θ(g(n)) ํ•จ์ˆ˜ f์˜ ์ฆ๊ฐ€์†๋„๊ฐ€ g๋ž‘ ๋น„์Šทํ•˜๋‹ค.
    • ์ตœ๊ณ ์ฐจํ•ญ์˜ ์ฐจ์ˆ˜๊ฐ€ g(n)๊ณผ ์ผ์น˜ํ•˜๋Š” ํ•จ์ˆ˜์˜ ์ง‘ํ•ฉ์ด๋‹ค.

    ๋Œ“๊ธ€