์๊ณ ๋ฆฌ์ฆ์ ์์ ํ์(Brute-Force, ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ํด๋ณด๋ ๊ฒ)์์ ์์ํ๋ค. ์ด๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค ๋ฐ์ ธ๋ณด๊ธฐ ๋๋ฌธ์ ๊ฐ๋ ฅํ์ง๋ง, ์ต๋์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค. ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐํด๋ณด๊ณ , ์๊ฐ๋ณต์ก๋๋ฅผ ์ค์ผ ์ ์๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ๊ทธ๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํด๋ณด๊ณ , ๊ทธ ์๊ณ ๋ฆฌ์ฆ์ ์ ํํ๊ฒ ์ฝ๋๋ก ๊ตฌํํ ์ ์์ด์ผ ํ๋ค. ์ข์ ์ฝ๋๋ฅผ ์ง๊ธฐ ์ํด์๋ ๋ค์ ๊ณผ์ ์ ์ฐ์ต์ด ํ์ํ๋ค.
- ๋ฌธ์ ๋ฅผ ํ์ ํ๊ณ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํ๊ธฐ
- ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๊ฐ๋ณต์ก๋์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ์ฐํ์ฌ ๋ฌธ์ ์ ์ ์ฝ ์กฐ๊ฑด ๋ด์ ์ํ๋ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ธ์ง ํ๋จํ๊ธฐ
- ์๊ณ ๋ฆฌ์ฆ์ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ๊ตฌํํ๊ธฐ (์ฐ์ต๋ง์ด ์ ๋ต)
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ฌ๋ฌ ๋์๋ค์ ๋ชจ์์ ๋งํ๋ฉฐ, ๊ณ ๋ ํ๋ฅด์์์ ์ํ์ ์์ฝฐ๋ฆฌ์ฆ๋ฏธ(Al-Khwarizmi)์์ ์ ๋ํ์๋ค.
- ์ ๋ฐ์ฑ : ๋ณํ์ง ์๋ ๋ช ํํ ์์ ๋จ๊ณ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค.
- ์ ์ผ์ฑ : ๊ฐ ๋จ๊ณ๋ง๋ค ๋ช ํํ ๋ค์ ๋จ๊ณ๋ฅผ ๊ฐ์ ธ์ผ ํ๋ค.
- ์ ๋ ฅ : ์ ์๋ ์ ๋ ฅ์ ๋ฐ์๋ค์ผ ์ ์์ด์ผ ํ๋ค.
- ์ถ๋ ฅ : ๋ต์ผ๋ก ์ถ๋ ฅ์ ๋ด๋ณด๋ผ ์ ์์ด์ผ ํ๋ค.
- ์ ํ์ฑ : ํน์ ์์ ์์ ์ดํ์ ์ ์งํด์ผ ํ๋ค. (์ ์ง ์กฐ๊ฑด)
- ์ผ๋ฐ์ฑ : ์ ์๋ ์ ๋ ฅ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฉํ ์ ์์ด์ผ ํ๋ค.
๊ตฌํํ ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ๋ฐ์ง ๋ ์๊ฐ๋ณต์ก๋์ ๊ณต๊ฐ๋ณต์ก๋์ ๊ฐ๋
์ด ๋์จ๋ค.
์
๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์ปค์ง์๋ก ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ ์ฐจ์ด๋ ๋๋๋ฌ์ง๋ค. ์ฑ๋ฅ์ด ์ข์ง ์์ ์๊ณ ๋ฆฌ์ฆ์ผ ๊ฒฝ์ฐ ์
๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์ปค์ก์ ๋ ์คํ ์๊ฐ์ด ๋น ๋ฅด๊ฒ ๋์ด๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์ ์ ๋ฐ๋ผ ๋ฏธ๋ฆฌ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ณ์ฐํด๋ณด๊ณ ๋ฌธ์ ์กฐ๊ฑด์ ์ ํฉํ ์๊ณ ๋ฆฌ์ฆ์ธ์ง ํ๋จํ๋ ๊ณผ์ ์ด ์ค์ํ๋ค.
์๊ฐ๋ณต์ก๋๋ ์๋ํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ํ์๊ฐ์ ์ ๋ํํ๋ ๊ฒ์ ๋ปํ๋ค.
์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ๋ณต์ก๋๋ ์ฐ์ฐ์ ํ์ T(N)์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ด ์ฃผ๋ก ์ฐ์ธ๋ค. ๋ณดํต 1์ต(10^8)๋ฒ์ ์ฐ์ฐ๋น 1์ด์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค๊ณ ๊ฐ์ฃผํ๋ค.
- ๋น
-์ค(Big-Oh,
) ํ๊ธฐ๋ฒ : Worst Case์ ์ฐ์ฐํ์๋ฅผ ๋ํ๋ธ๋ค.
- ๋น
-์ค๋ฉ๊ฐ(Big-Omega,
) ํ๊ธฐ๋ฒ : Best Case์ ์ฐ์ฐํ์๋ฅผ ๋ํ๋ธ๋ค.
- ๋น
-์ธํ(Big-Theta,
ํ๊ธฐ๋ฒ : Average Case์ ์ฐ์ฐํ์๋ฅผ ๋ํ๋ธ๋ค.
์ผ๋ฐ์ ์ผ๋ก ์๊ฐ๋ณต์ก๋๋ฅผ ํํํ ๋ **๋น -์ค ํ๊ธฐ๋ฒ(Big-O Notation)**์ ์ฌ์ฉํ๋ค. ๋น -์ค ํ๊ธฐ๋ฒ์ ์ฐ์ฐ ํ์ T(N)์์ ์ต๊ณ ์ฐจํญ๋ง์ ํ๊ธฐํ๋ ํ๊ธฐ๋ฒ์ด๋ค. ์๊ณ ๋ฆฌ์ฆ์ ์คํ ์๊ฐ์ด n + n^2์ ๋น๋กํ๋ค๊ณ ํ ๋, n์ด ๋งค์ฐ ์ปค์ง๋ฉด n^2์ด๋ n + n^2์ด๋ ํฐ ์ฐจ์ด๊ฐ ๋์ง ์๊ฒ ๋๊ธฐ ๋๋ฌธ์ด๋ค.
- ์์ํ
O(1)
: ํญ์ ์ผ์ ํ ์๊ฐ ์์ ์คํ ์๋ฃ - ๋ก๊ทธํ
O(logN)
: ์คํ ์๊ฐ์ด ์ ๋ ฅ ํฌ๊ธฐ์ ๋ก๊ทธ์ ๋น๋กํด์ ๋์ด๋จ - ์ ํ
O(N)
: ์คํ ์๊ฐ์ด ์ ๋ ฅ ํฌ๊ธฐ์ ๋ฐ๋ก ๋น๋ก (์ ํ์ ์ผ๋ก ์ฆ๊ฐ) - ์ ํ๋ก๊ทธํ
O(NlogN)
: ์ ํ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋คํญ์ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ฐ์ฏค ์๋ - ๋คํญ์ํ
O(N^c)
: ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ๋์ด๋๋ฉด ์คํ ์๊ฐ์ด ๋น ๋ฅด๊ฒ ๋์ด๋จ - ์ง์ํ
O(c^N)
: ๋คํญ์ ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค๋ ๋ ๋น ๋ฅด๊ฒ ๋์ด๋จ - ํฉํ ๋ฆฌ์ผํ
O(N!)
: ๊ฐ์ฅ ๋๋ฆฐ ์๊ณ ๋ฆฌ์ฆ. n์ด ์์๋ ๊ธ๋ฐฉ ๊ฑฐ์ ์ฐ๊ธฐ ํ๋ ์์ค์ผ๋ก ๋๋ ค์ง๋ค.
๊ทธ๋ฆผ์ ๋ณด๋ฉด ์ ์ ์ ๋ฏ์ด, O(n^2)๋ถํฐ ์คํ ์๊ฐ์ด ํฌ๊ฒ ๋์ด๋๋ค. ์ ํ๋ก๊ทธํ(์ค์ ํ) O(NlogN)
์๊ณ ๋ฆฌ์ฆ ๋๋ ๊ทธ๋ณด๋ค ๋ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ ์ฐพ์ผ๋ฉด ์ ํ๋ฆฌ์ผ์ด์
์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์๋ค.
๊ณต๊ฐ๋ณต์ก๋๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ํ ๋ถ์ ๊ฒฐ๊ณผ๋ก, ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ๋ฅผ ๋งํ๋ค. ์๋ฒ ๋๋ ์์คํ ์ฒ๋ผ ์ ์ฝ์ด ๋ง์ ํ๊ฒฝ์์๋ ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ด ์คํ ์๊ฐ ๋ชป์ง์๊ฒ ์ค์ํ๋ค.
์ด๋ฅผ ์ ์๊ธฐ ์ํด์๋ ์๋ฃํ ๋ณ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ ์ด๋ค์ง, ์ค์ ์๋ฃ๊ตฌ์กฐ๊ฐ ์ด๋ป๊ฒ ๊ตฌํ๋๋์ง ๋ฑ์ ์ ๋๋ก ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค.