-
๐ฅ๏ธ Computer science/: Algorithm๐งฌ
[์๊ณ ๋ฆฌ์ฆ] ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋ ๊ณผ ์ฑ๋ฅ ๋ถ์(์๊ฐ ๋ณต์ก๋, ๋น -์ค ํ๊ธฐ๋ฒ)
2024. 1. 25.
์๊ณ ๋ฆฌ์ฆ๊ณผ ์๋ฃ๊ตฌ์กฐ
- ์๊ณ ๋ฆฌ์ฆ=์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด๊ฐ๋ ๋ ผ๋ฆฌ์ ์ธ ๊ณผ์
- ๋ฐ์ดํฐ์ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๊ด๊ณ
- ์๋ฃ๊ตฌ์กฐ) ํจ์จ์ ์ ๊ทผ๊ณผ ์์ ์ด ๊ฐ๋ฅํ๋๋ก ์๋ฃ๋ฅผ ๊ตฌ์ฑ, ๊ด๋ฆฌ, ์ ์ฅํ๋ ๊ฒ
- ์๊ณ ๋ฆฌ์ฆ) ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ํด์ง ์ผ๋ จ์ ๋จ๊ณ์ ์ธ ์ ์ฐจ๋ ๋ฐฉ๋ฒ
์๊ณ ๋ฆฌ์ฆ ํํ๋ฒ
์ผ๋ฐ ์ธ์ด ํํ
- ์ผ๋ฐ์ ์ธ ์์ฐ์ด๋ฅผ ์ฌ์ฉํด์ ์ค๋ช ํ๋ฏ์ด ํํ
์์๋ (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)๊ณผ ์ผ์นํ๋ ํจ์์ ์งํฉ์ด๋ค.
๋๊ธ