โ 1. ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋
(1) ์๊ณ ๋ฆฌ์ฆ์ ์ ์
- ์ฃผ์ด์ง ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํ ๋ช ๋ น์ด๋ค์ ๋จ๊ณ์ ์ผ๋ก ๋์ดํ ๊ฒ์ ์๋ฏธ ( ์ฃผ์ด์ง ๋ฌธ์ ์ ๋ํ ํ์ด ๋ฐฉ๋ฒ ๋ฐ ์ ์ฐจ )
- ์ ์ถ๋ ฅ: 0๊ฐ ์ด์์ ์ธ๋ถ ์ ๋ ฅ, 1๊ฐ ์ด์์ ์ถ๋ ฅ ์์ฑ
- ๋ช ํ์ฑ: ๊ฐ ๋ช ๋ น์ ๋ชจํธํ์ง ์๊ณ ๋จ์ ๋ช ํํด์ผ ํจ
- ์ ํ์ฑ: ํ์ ๋ ์์ ๋จ๊ณ๋ฅผ ๊ฑฐ์น ํ์๋ ๋ฐ๋์ ์ข ๋ฃํด์ผ ํจ
- ์ ํจ์ฑ: ๋ชจ๋ ๋ช ๋ น์ ์ปดํจํฐ์์ ์คํํ ์ ์์ด์ผ ํจ
- ์๊ณ ๋ฆฌ์ฆ์ ์ถฉ์กฑํ๊ธฐ ์ํด์๋ ์ด์ ๊ฐ์ด 4๊ฐ์ง ์กฐ๊ฑด์ ๋ง์กฑํด์ผํจ.
- ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ์ด์ง ๋ฌธ์ ์ ๋ํ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ณ ์์. ( ์ค์ฉ์ ์ธก๋ฉด์์ ํจ์จ์ ์ด์ด์ผ ํจ )
(2) ์๊ณ ๋ฆฌ์ฆ ์์ฑ ๋จ๊ณ
- (1) ์ค๊ณ: ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์์ด๋์ด๋ฅผ ๊ตฌ์ฒดํํ์ฌ ์๊ณ ๋ฆฌ์ฆ ํํ๋ก ๋ง๋๋ ๋จ๊ณ
- (2) ํํ/๊ธฐ์ : ์ค๊ณ๋ ์๊ณ ๋ฆฌ์ฆ์ ์๋ ์ฝ๋, ์์๋ ๋๋ ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ ๋จ๊ณ
- (3) ์ ํ์ฑ ๊ฒ์ฆ: ์๊ณ ๋ฆฌ์ฆ์ด ๋ชจ๋ ์ ํจํ ์ ๋ ฅ์ ๋ํด ์ฌ๋ฐ๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋์ง ๋ ผ๋ฆฌ์ ์ผ๋ก ์ฆ๋ช ํ๊ฑฐ๋ ํ ์คํธํ๋ ๋จ๊ณ
- (4) ํจ์จ์ฑ ๋ถ์: ์๊ณ ๋ฆฌ์ฆ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ํ์ํ ์๊ฐ๊ณผ ๊ณต๊ฐ ์์์ ์์ ๋ถ์ํ์ฌ ํจ์จ์ฑ์ ํ๊ฐํ๋ ๋จ๊ณ
- ์ด๋ ๊ฒ ์ด 4๊ฐ์ง ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ํ๊ฒ ๋๋ค.
(3) ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ด๊ณ
[ ์๋ฃ๊ตฌ์กฐ ]
- ๋ฐ์ดํฐ ์ฌ์ด์ ๋ ผ๋ฆฌ์ ๊ด๊ณ๋ฅผ ํํํ๊ณ ์กฐ์งํํ๋ ๋ฐฉ๋ฒ
- ๊ธฐ๋ณธ์ /๋ํ์ ์ข ๋ฅ๋ก๋ ๋ฐฐ์ด, ์ฐ๊ฒฐ ๋ฆฌ์คํธ, ์คํ, ํ, ํธ๋ฆฌ, ๊ทธ๋ํ ๋ฑ์ด ์๋ค.
[ ํจ์จ์ ์ธ ํ๋ก๊ทธ๋จ ]
- ์๋ฃ๊ตฌ์กฐ์ ๋ํ ๊ณ ๋ ค ์๋ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ์ ํ์ ๋ฌด์๋ฏธํจ.
- ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ๊ณ ๋ ค ์๋ ํจ์จ์ ์ธ ์๋ฃ๊ตฌ์กฐ์ ์ ํ์ ๋ฌด์๋ฏธํจ.
- ์ฆ, ์ ์ ํ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ด ์ ์ ํ ํฉ์ณ์ ธ ์กฐํ๋ฅผ ์ด๋ฃจ๋ฉด ํจ์จ์ ์ธ ํ๋ก๊ทธ๋จ(์๊ณ ๋ฆฌ์ฆ)์ ๋ง๋ค ์ ์์.
โ 2. ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณ
- ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ๋ง๋ค๊ธฐ ์ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ด๋ค.
(1) ์ต๋๊ฐ์ ์ฐพ๊ธฐ - ์๊ณ ๋ฆฌ์ฆ ์์
- ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ์ต์/์ต๋๊ฐ ์ฐพ๊ธฐ์ ํด๋นํ๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์์๋ฅผ ์์ฐจ์ ์ผ๋ก ํ์ธํด์ผ ํ๋ ๋ฌธ์ ์ด๋ค.
- ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ฉ ํ์ธํด์ผ ํ๋ ๋ฌธ์ ์์๋ n๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ง ๋ n-1 ๋ฒ์ ์ฐ์ฐ์ ์ํํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐ์ฅ ํจ์จ์ ์ธ ์ฆ, ์ต์ํ์ ์ฐ์ฐ ํ์๊ฐ ๋๋ค.
- ์๊ณ ๋ฆฌ์ฆ 1๊ณผ 2๋ ๊ฐ๊ฐ 7๋ฒ์ ์ฐ์ฐ์ผ๋ก ๋์ผํ ํจ์จ์ฑ์ ๋ํ๋ด๊ณ ์๋ค.
(2) ๋ค์์ธ ์นด๋ ์ค์์ ์ํ๋ ์นด๋ ์ฐพ๊ธฐ - ์๊ณ ๋ฆฌ์ฆ ์์
- ์์ฐจ ํ์: ๋ฐฐ์ด์ด๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๊ฐ์ ์ ํ ์๋ฃ ๊ตฌ์กฐ์์ ํน์ ํ ๊ฐ์ ์ฐพ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ์ ๋ ฌ๋์ง ์์ ์นด๋ ๋๋ฏธ์์ ์ํ๋ ์นด๋๋ฅผ ์ฐพ๋ ๊ฐ์ฅ ์ง๊ด์ ์ด๊ณ ํ์ค์ ์ธ ๋ฐฉ๋ฒ์.
- ์ฆ, ์ ๋ ฌ์ด ๋์ด์๋ค๋ฉด ๋ค๋ฅธ ํ์ ๋ฐฉ๋ฒ์ด ๋ ํจ์จ์ ์ผ ์ ์์.
(3) ์์๋๋ก ๋์ด๋ ์นด๋ ์ค์์ ์ฐพ๊ธฐ - ์๊ณ ๋ฆฌ์ฆ ์์
- ์ด์ง ํ์: ์ ๋ฐ์ฉ ์๋ผ๊ฐ๋ฉด์ ์ํ๋ ๊ฐ์ ์ฐพ์๋๊ฐ๋ ๋ฐฉ์์ด๋ค. ์ ๋ ฌ๋ ์๋ฃ์์๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํจ.
- ์ฆ, ์ ๋ ฌ๋ ์๋ฃ์ ๊ฐ์(n)๊ฐ ๋ง์์ง์๋ก ์์ฐจ ํ์๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ณ ํจ์จ์ ์ด๊ฒ ๋๋ค.
- ์์์์ ์์๋๋ก ๋์ด๋ ๊ฒฝ์ฐ๋ฅผ ๋ณด๋ฉด ์ด์ง ํ์์ ์ฐ๊ฒ ๋๋ฉด ๊ฐ์ด๋ฐ 7์ ๋ณด๊ณ ์ผ์ชฝ์ ์ ์ธ ํ ์ ์๊ฒ ๋๋ฉฐ, ์ค๋ฅธ์ชฝ ๊ฐ์ด๋ฐ๋ฅผ ๋ณด๊ณ ๋ง์ง๋ง ์ผ์ชฝ์ 10์ด ์๋ค๋ ๊ฒ์ ์ ์ ์๊ฒ๋จ. ์ฆ, 3๋ฒ๋ง์ ์ฐพ์ ์ ์์ด ๋งค์ฐ ํจ์จ์ ์.
(4) ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ์ ์ ์ฉํ ๋ฐฉ๋ฒ
[ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ์ข์๊ฐ? ]
- ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ์ข์๊ฐ? ๋ ๋ฌธ์ ์ ๋ฐ๋ผ ๋ค๋ฅด๊ณ , ํด๋น ๋ฌธ์ ๋ ๋ฌด์ํ ๋ง๊ธฐ ๋๋ฌธ์ ๋ฐฉ๋ฒ ๋ํ ๋งค์ฐ ๋ค์ํจ.
- ๊ทธ๋์ ์ฃผ์ด์ง ๋ฌธ์ ์ ๊ทธ์ ๋ฐ๋ฅธ ์กฐ๊ฑด๋ฑ์ด ๋งค์ฐ ๋ค์ํ๋ฏ๋ก ํด๋น ๋ฌธ์ ์ ํ์ํ ์๊ณ ๋ฆฌ์ฆ์ ์ง์ ์ค๊ณํด์ผํจ.
- ์ฆ, ์ผ๋ฐ์ ์ด๊ณ ๋ฒ์ฉ์ ์ธ ์ค๊ณ ๊ธฐ๋ฒ์ ์ฌ์ค์ ์กด์ฌํ์ง ์์.
- ๊ทธ๋ ์ง๋ง ๋ชจ๋ ๋ฌธ์ ๋ ์๋์ง๋ง ๋ง์ ๋ฌธ์ ์ ์ ์ฉ๋ ์ ์๋ ๋ํ์ ์ธ ์ค๊ณ ๊ธฐ๋ฒ์ด ์กด์ฌํจ.
[ ๋ํ์ ์ธ ์ค๊ณ ๊ธฐ๋ฒ ]
- ๋ถํ ์ ๋ณต(divide-and-conquer) ๋ฐฉ๋ฒ
- ๋์ ํ๋ก๊ทธ๋๋ฐ(dynamic programming) ๋ฐฉ๋ฒ
- ์์ฌ์์ด(greedy) ๋ฐฉ๋ฒ
(5) ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ ( ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ )
- ์ํ์ (์ฌ๊ท)์ผ๋ก ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ณต์กํ ๋ฌธ์ ๋ฅผ ์์ ๋ถ๋ถ ๋ฌธ์ ๋ก ๋๋์ด ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ํจ๋ฌ๋ค์์ด๋ค.
- ๋ฌธ์ ์ ์ ๋ ฅ์ ๋ ์ด์ ๋๋ ์ ์์ ๋๊น์ง 2๊ฐ ์ด์์ ์์ ๋ฌธ์ ๋ก ์ํ์ ์ผ๋ก ๋ถํ ํ๊ณ , ๋ถํ ๋ ๋ฌธ์ ๋ค์ ๊ฐ๊ฐ ํด๊ฒฐํ ํ ์ด๋ค์ ํด๋ฅผ ๊ฒฐํฉํ์ฌ ์๋ ๋ฌธ์ ์ ํด๋ฅผ ๊ตฌํ๋ ํํฅ์ ์ ๊ทผ ๋ฐฉ๋ฒ์ด๋ค.
[ ํน์ง ]
- ๋ถํ ๋ ์์ ๋ฌธ์ ๋ ์๋ ๋ฌธ์ ์ ๋์ผ, ๋จ ์ ๋ ฅ ํฌ๊ธฐ๋ง ์์์ง
- ๋ถํ ๋ ์์ ๋ฌธ์ ๋ ์๋ก ๋ ๋ฆฝ์ ์.
(6) ๋์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ ( ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ )
- ์ต์ ํ ๋ฌธ์ ์ ํด(์ต๋๊ฐ, ์ต์๊ฐ)๋ฅผ ๊ตฌํ๊ธฐ ์ํ ์ํฅ์ ์ ๊ทผ ๋ฐฉ๋ฒ์ด๋ค.
- ๋ฌธ์ ์ ํฌ๊ธฐ๊ฐ ์์ ์๋ฌธ์ ์ ๋ํ ํด๋ฅผ ๊ตฌํด์ ํ ์ด๋ธ์ ์ ์ฅํด ๋๊ณ , ์ด๋ฅผ ์ด์ฉํ์ฌ ํฌ๊ธฐ๊ฐ ๋ณด๋ค ํฐ ๋ฌธ์ ์ ํด๋ฅผ ์ ์ง์ ์ผ๋ก ๋ง๋ค์ด ๊ฐ๋ ๋ฐฉ๋ฒ์ด๋ค. ( ์๋ฌธ์ ๋ค์ด ์๋ก ๋ ๋ฆฝ์ผ ํ์ ์์ )
- ๋ฌธ์ ๋ฅผ ๋ถํ ์ ๋ณต์ฒ๋ผ ์ชผ๊ฐ์ด๋ณด๋ ๊ฒน์น๋ ๋ถ๋ถ ๋ฌธ์ ๋ค์ด ์กด์ฌํ ๊ฒฝ์ฐ ์ฌ์ฉ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค. ( ํต์ฌ ํค์๋: ์ฌ์ฌ์ฉ )
(7) ์์ฌ์์ด ๋ฐฉ๋ฒ ( ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ )
- ํด๋ฅผ ๊ตฌํ๋ ์ผ๋ จ์ ์ ํ ๊ณผ์ ๋ง๋ค ์ ํ ๋จ๊ณ์ ์ ํ๊ณผ๋ ์๊ด์์ด ๊ฐ ๋จ๊ณ์์ '๊ฐ์ฅ ์ต์ '์ด๋ผ๊ณ ์ฌ๊ฒจ์ง๋ ๊ตญ๋ถ์ ์ธ ์ต์ ํด๋ฅผ ์ ํํด ๋๊ฐ๋ฉด ๊ฒฐ๊ณผ์ ์ผ๋ก ์ ์ฒด์ ์ธ ์ต์ ํด๋ฅผ ์ป์ ์ ์์๊ฒ์ด๋ผ๊ณ ํฌ๋งํ๋ ๋ฐฉ๋ฒ ( ๊ฐ ๋จ๊ณ ๋ง๋ค ์ต์ ์ ๋ํ ์์ฌ )
- ํฌ๋งํ๋ค ๋ผ๊ณ ํ๊ธฐ ๋๋ฌธ์, ๊ฐ ๋จ๊ณ์ ์ต์ ํด๋ฅผ ํตํด ์ ์ฒด์ ์ธ ์ต์ ํด๋ฅผ ๋ง๋ค์ด ๋ด์ง ๋ชปํ ์ ์์.
- ์์ฌ์์ด ๋ฐฉ๋ฒ์์ "๊ฐ์ฅ ์ข์ ๋ณด์ด๋ ๊ฒ"์ด๋ผ๋ ํํ์ ์ข ์ข **'์ต๋๊ฐ' ๋๋ '์ต์๊ฐ'**๊ณผ ๊ฐ์ ์ต์ ์ ๊ฐ์ ์๋ฏธํ๋ค.
(8) ๋ํ์ ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ ์ ๋ฆฌ
- ๋ถํ ์ ๋ณต, ๋์ ํ๋ก๊ทธ๋๋ฐ, ์์ฌ์์ด ๋ฐฉ๋ฒ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ค๊ณ์์ ๋ง์๊ฐ์ง์ ๊ฐ๊น์
- ๋ถํ ์ ๋ณต: ํฐ ๋ฌธ์ ๋ฅผ ๊ฐ๋นํ ์ ์์ผ๋, ์ฌ๋ฌ ๊ฐ๋ก ์ชผ๊ฐ์ ๊ฐ์ ํด๊ฒฐํ์.
- ๋์ ํ๋ก๊ทธ๋๋ฐ: ํ๋ค ๋ณด๋ ๋๊ฐ์ ๋ฌธ์ ๊ฐ ์๊พธ ๋์ค๋ค? ํ ๋ฒ ํผ ๋ต์ ์ ์ ์ด๋๋ค๊ฐ ๋ค์ ์จ๋จน์ด์ผ๊ฒ๋ค.
- ์์ฌ์์ด ๋ฐฉ๋ฒ: ๋ค๋ฅธ ๊ฑด ์๊ฐํ์ง ๋ง๊ณ , ์ง๊ธ ๋น์ฅ ๊ฐ์ฅ ์ข์ ์ ํ๋ง ๊ณ์ํ์
โ 3. ์๊ณ ๋ฆฌ์ฆ์ ๋ถ์
- ์ค๊ณ๊ฐ ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ถ์ํ๋ ๊ฒ์ ์๋ฏธํจ.
(1) ์ ํ์ฑ ๋ถ์ ( ๋ณต์กํ๊ณ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ์ ๋ค๋ฃจ์ง ์๋ ๋ด์ฉ์ด ๋จ. )
- ์ ํจํ ์ ๋ ฅ๊ณผ ์ ํํ ์๊ฐ๋ด์ ๋ด๊ฐ ์ํ๋ ์ ํํ ๊ฒฐ๊ณผ๊ฐ ์์ฑ ๋๋๊ฐ๋ฅผ ํ๋จํจ.
- ์ด๋ฌํ ํ์ธํ๋ ๊ณผ์ ์ ๋ค์ํ ์ํ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ ์ด๋ก ์ ์ฆ๋ช ์ ํ๋ ๊ณผ์ ์.
- ์ ํ์ฑ ๋ถ์์ด ์ด๋ฏธ ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ณดํต ํจ์จ์ฑ ๋ถ์์ ํจ ์ฐ๋ฆฐ.
(2) ํจ์จ์ฑ ๋ถ์ ( ๋๋ถ๋ถ ์ด๊ฑธ ์ฌ์ฉ )
- ์๊ณ ๋ฆฌ์ฆ ์ํ์ ํ์ํ ์ปดํจํฐ ์์์ ์์ ์ธก์ ํ๊ณ ํ๊ฐํ๋ ๊ฒ์ ์๋ฏธํจ. ( ํต์ฌ์ ๋ฉ๋ชจ๋ฆฌ, CPU ์ )
- ๊ณต๊ฐ ๋ณต์ก๋: ๋ฉ๋ชจ๋ฆฌ์ ์ = ์ ์ ๊ณต๊ฐ + ๋์ ๊ณต๊ฐ ( ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ผ๋ง๋ ์ฌ์ฉํ๋์ง ๋ฐ์ง )
- ์๊ฐ ๋ณต์ก๋: CPU์ ๊ด๋ จํด์ ์๊ณ ๋ฆฌ์ฆ์ ์ํ ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋๋๋ฅผ ๋ฐ์ง๋ ๊ฒ์ ์๋ฏธํจ.
(3) ์๊ฐ ๋ณต์ก๋
[ ์๊ฐ ๋ณต์ก๋์ ํต์ฌ ์๋ฆฌ ]
- ์๊ฐ ๋ณต์ก๋๋ ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ๊ฐ๊ด์ ์ผ๋ก ํ๊ฐํ๊ธฐ ์ํ ๊ธฐ์ค์.
- ์ปดํจํฐ์ ์๋, ์ธ์ด ๋ฑ ์ธ๋ถ ์์ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ **์ค์ ์๊ฐ(์ด ๋จ์)**์ด ์๋๋ผ, **์๊ณ ๋ฆฌ์ฆ์ '์ฐ์ฐ ํ์'**๋ฅผ ์ธก์ ํ๋ค.
- ์ด๋ ์๊ณ ๋ฆฌ์ฆ ์์ฒด์ ์์ํ ์ฑ๋ฅ์ ๋น๊ตํ๋ ๋ฐ ๋ชฉ์ ์ด ์์.
- ์ฆ, ์๊ฐ ๋ณต์ก๋์์ ๋งํ๋ '์ํ ์๊ฐ'์ ์ค์ ๋ก ๊ฑธ๋ฆฌ๋ ์ด ๋จ์์ ์๊ฐ์ด ์๋๋ผ, ์๊ณ ๋ฆฌ์ฆ์ ์ฐ์ฐ ํ์๋ฅผ ์๋ฏธํจ.
- ํต์ฌ์ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ํํ๋ ๊ณ์ฐ, ๋น๊ต, ๋์ ๋ฑ์ ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ์ด ๋ช ๋ฒ ์ผ์ด๋๋์ง๋ฅผ ์ธ๋ ๊ฒ์.
[ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ํ๋ด๋ ๋ ๊ฐ์ง ๊ธฐ์ค ]
- [ 1. ์ ๋ ฅ ํฌ๊ธฐ์ ํจ์ ]
- ์๊ณ ๋ฆฌ์ฆ์ ์ฐ์ฐ ํ์๋ฅผ ์ ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ(N)์ ๋ํ ํจ์๋ก ํํํฉ๋๋ค.
- ์ฆ, ๋ฐ์ดํฐ๊ฐ N๊ฐ์ผ ๋ ์ฐ์ฐ์ด ๋ช ๋ฒ ๋ฐ์ํ๋์ง (T(N))๋ฅผ ๋ํ๋ด๋ ๊ฒ์ ๋๋ค.
- ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๊ฐ 2๋ฐฐ ๋์ด๋๋ฉด ์ฐ์ฐ ํ์๋ 2๋ฐฐ ๋์ด๋๋ ๊ด๊ณ๋ฅผ O(N)์ผ๋ก ํํํฉ๋๋ค.
- [ 2. ์ต์ ์ํ ์๊ฐ ]
- ์ ๋ ฅ ๋ฐ์ดํฐ์ ์ํ์ ๋ฐ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฅ์ด ๋ฌ๋ผ์ง ์ ์๊ธฐ ๋๋ฌธ์, ๊ฐ์ฅ ๋๋ฆฌ๊ฒ ๋์ํ๋ ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฑ๋ฅ์ ํ๊ฐํฉ๋๋ค.
- ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ํ์ ํ๋ฉด, "์ด ์๊ณ ๋ฆฌ์ฆ์ ์๋ฌด๋ฆฌ ๋์ ์ํฉ์ด ์๋ ์ด ์๊ฐ(์ฐ์ฐ ํ์)์ ๋์ง ์๋๋ค"๋ผ๋ ์ฑ๋ฅ์ ์ํ์ ์ ๋ณด์ฅํ ์ ์์ด ๊ฐ์ฅ ์์ ํ ๊ธฐ์ค์ด ๋ฉ๋๋ค.
(4) ์ ๊ทผ์ฑ๋ฅ
- ์ ๊ทผ์ฑ๋ฅ์ด๋ ์ ๋ ฅ ํฌ๊ธฐ n์ด ๋งค์ฐ ์ปค์ง ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง, ์ฆ ์ฑ์ฅ๋ฅ ์ ์ค์ฌ์ผ๋ก ํ ์ฑ๋ฅ์ ์๋ฏธํ๋ค.
- ์ค์ ์คํ ์๊ฐ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ ํํ ์ธก์ ํ๋ ๊ฒ์ด ์๋๋ผ, ์ ๋ ฅ์ด ์ปค์ง์๋ก ์ฆ๊ฐํ๋ ์๋๋ฅผ ๋ถ์ํ๋ค.
- ์ฃผ๋ก Big-O, Big-Ω, Big-Θ ๊ฐ์ ์ ๊ทผ์ ํ๊ธฐ๋ฒ์ผ๋ก ํํ์ ํ๋ค.
- ์์ n์์๋ B ์๊ณ ๋ฆฌ์ฆ์ด ๋๋ฆด ์ ์์ง๋ง, n์ด ์ถฉ๋ถํ ์ปค์ง๋ฉด n^2์ธ A๊ฐ ๋ ๋๋ฆฌ๋ค๋ ๊ฒ์ ์ ๊ทผ์ฑ๋ฅ ๋ถ์์ผ๋ก ์ ์ ์์.
- ์ ๊ทผ์ฑ๋ฅ์ ์๊ณ ๋ฆฌ์ฆ์ ์ํ์๊ฐ์ด ๋คํญ์์ผ๋ก ํํ์ด ๋์์ ๋, ํด๋น ๋คํญ์์ ์ต๊ณ ์ฐจํญ์ ์ด์ฉํด์ ํ๊ธฐํ๋๊ฒ์ ์๋ฏธํจ.
(4) ์ ๊ทผ์ฑ๋ฅ์ ํ๊ธฐ๋ฒ
- ์ ๊ทผ์ฑ๋ฅ์ ๋ถ์ํ๋ฉด ์ ๋ ฅ ํฌ๊ธฐ ๐ ์ด ์ปค์ง ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ์ ์ ์๊ณ , ์ด๋ฅผ ์ํ์ ์ผ๋ก ํํํ ๋ํ์ ์ธ ์ฑ๋ฅ ์งํ๊ฐ ์ ๊ทผ์ ์ํ(Big-O), ์ ๊ทผ์ ํํ(Big-Ω), ์ ๊ทผ์ ์ํํ(Big-Θ) ์ธ ๊ฐ์ง์ด๋ค.
[ ์ ๊ทผ์ ์ํ (Big-oh) ]
- ์ ๋ ฅ ํจ์ ๐(๐) ์ด ๐๐(๐) ๋ณด๋ค ํญ์ ์๊ฑฐ๋ ๊ฐ์์ง๋ ์๊ฐ๋ถํฐ, ์ฐ๋ฆฌ๋ ๐(๐) ์ ์ ๊ทผ์ ์ํ์ ๐(๐) ์ด๋ผ๊ณ ์ ์ํจ.
- ๐(๐) : ์ ๋ ฅ n์ ๋ฃ์ผ๋ฉด ์ํ๋์ด ์ผ๋ง์ธ์ง ์๋ ค์ฃผ๋ ํจ์์ ๋๋ค.
- ๐(๐) : ์ฑ์ฅ์ ๋น๊ตํ ๊ธฐ์ค์ด ๋๋ ํจ์์. ํํ ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์ก๋๋ฅผ ๋ํ๋ผ ๋ ์ฐ์ด๋ ํ์ค ํจ์ (์: ๐, ๐^2 , log ๐)
- ๐ : f(n)๊ณผ g(n) ์ฌ์ด์ ํฌ๊ธฐ ์ฐจ์ด๋ฅผ ์กฐ์ ํ๋ ์์์ด๋ค.
- ๐0โ : ์ถฉ๋ถํ ํฐ ์ ๋ ฅ ํฌ๊ธฐ
- ์ต๋ ์ฑ์ฅ๋ฅ ์ ๋ํ๋ด๋ ๊ฐ๋ ์ด๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ด ์ต์ ์ ๊ฒฝ์ฐ ์ผ๋ง๋ ๋๋ ค์ง ์ ์๋์ง ์ํ์ ์ ์ ๊ณตํ๋ค.
- ์ค์ ์คํ ์๊ฐ๋ณด๋ค๋ ์ ๋ ฅ ํฌ๊ธฐ ์ฆ๊ฐ์ ๋ฐ๋ฅธ ์ฆ๊ฐ ์๋๋ฅผ ๋ณด๋ ๋ฐ ์ด์ ์ด ์์.
[ ์ ๊ทผ์ ํํ (Big-omega) ]
- ์ ๋ ฅ ํจ์ ๐(๐)์ด ๐๐(๐) ๋ณด๋ค ํญ์ ํฌ๊ฑฐ๋ ๊ฐ์์ง๋ ์๊ฐ๋ถํฐ, ์ฐ๋ฆฌ๋ ๐(๐) ์ ์ ๊ทผ์ ํํ์ ๐(๐) ์ด๋ผ๊ณ ์ ์ํจ.
[ ์ ๊ทผ์ ์ํํ (Big-theta) ]
- ์ ๊ทผ์ ์ํ(Big-O)์ ํจ์ ๐(๐)์ด ๊ธฐ์ค ํจ์ ๐(๐)๋ณด๋ค ์ถฉ๋ถํ ํฐ ์ ๋ ฅ์์ ์๋ก ๋์ด๊ฐ์ง ์๋ ์ต๋ ์ฑ์ฅ๋ฅ , ์ ๊ทผ์ ํํ(Big-Ω)์ ๐(๐) ์ด ๐(๐) ๋ณด๋ค ์ถฉ๋ถํ ํฐ ์ ๋ ฅ์์ ์๋๋ก ๋ด๋ ค๊ฐ์ง ์๋ ์ต์ ์ฑ์ฅ๋ฅ , ์ ๊ทผ์ ์ํํ(Big-Θ)์ ๐(๐) ์ด ๐(๐) ๊ณผ ๊ฐ์ ์ฑ์ฅ ์๋๋ก ์ํ๊ณผ ํํ ์ฌ์ด์ ๋ผ์ด ์๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธํ๋ค.
[ ์ ๊ทผ์ฑ๋ฅ ํ๊ธฐ ๋คํญ์ ํ๊ธฐ ]
โ 4. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ: ์ ํ ์ ๋ ฌ, ๋ฒ๋ธ ์ ๋ ฌ, ์ฝ์ ์ ๋ ฌ
(1) ์ ๋ ฌ(sort) ์ด๋?
- ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ด๋ค ๊ธฐ์ค(์์)์ ๋ฐ๋ผ ์ฌ๋ฐฐ์ดํ๋ ๊ณผ์ ์ ์๋ฏธํ๋ค.
- ์ปดํจํฐ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ์ฐ์ฐ ์ค ํ๋์.
- ์ ๋ ฌ ์ํ ์์ ์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณณ์ ๋ฐ๋ผ์ ๋ด๋ถ์ ๋ ฌ, ์ธ๋ถ์ ๋ ฌ๋ก ๋๋๋ค.
- ๋ด๋ถ์ ๋ ฌ: ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฌํ ํ ์ ๋ ฌํ๋ ๋ฐฉ์์ ์๋ฏธํจ. ( ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ค์ด๊ฐ ์ ์์ ๋ ๊ฐ๋ฅ )
- ์ธ๋ถ์ ๋ ฌ: ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ฅํ ์ ์๋ ๊ฒฝ์ฐ(์ฆ, ๋ฐ์ดํฐ๊ฐ ํฐ ๊ฒฝ์ฐ) ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ ์ฅํ๊ณ ๊ทธ ์ค์ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ๋ฒ๊ฐ์ ๊ฐ๋ฉด์ ์ฃผ๊ธฐ์ต์ฅ์น๋ก ์ ์ฌํด์ ์ ๋ ฌํ๋ ๋ฐฉ์์ ์๋ฏธํจ.
(2) ๋ด๋ถ์ ๋ ฌ
- ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ธฐ์ต์ฅ์น์ ์ ์ญํ ํ ์ ๋ ฌํ๋ ๋ฐฉ์
- ์ ๋ ฌ ๋ฐฉ์์ ๋ฐ๋ผ ํฌ๊ฒ ๋น๊ต๊ธฐ๋ฐ, ๋ถํฌ๊ธฐ๋ฐ ๋ ๊ฐ์ง๋ก ๋๋จ.
- ๋น๊ต ๊ธฐ๋ฐ: ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ ๋ ๋ ๊ฐ์ ๋น๊ตํด์ ํฌ๊ฑฐ๋ ๊ฐ๋ค ์ด๋ฌํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌ์ ์ํํ๋ ๊ฒ
- ๋ถํฌ ๊ธฐ๋ฐ: ๋ฐ์ดํฐ๊ฐ ์ด๋ค์์ผ๋ก ๋ถํฌํ๊ณ ์๋ค๋ผ๋ ์ ๋ณด๋ฅผ ์ฌ์ ์ ๋ฏธ๋ฆฌ ์์์ ๊ทธ ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ ๊ฒ
[ ๋น๊ต ๊ธฐ๋ฐ ]
- ์ ํ(selection) ์ ๋ ฌ - O(n^2)
- ๋ฒ๋ธ(bubble) ์ ๋ ฌ - O(n^2)
- ์ฝ์ (insertion) ์ ๋ ฌ - O(n^2)
- ํต(quick) ์ ๋ ฌ - O(nlogn)
- ํฉ๋ณ(merge) ์ ๋ ฌ - O(nlogn)
[ ๋ถํฌ ๊ธฐ๋ฐ ]
- ๊ณ์(countion) ์ ๋ ฌ - O(n)
- ๊ธฐ์(radix) ์ ๋ ฌ - O(n)
- ์ฌ์ ์ ์ด๋ฏธ ์๊ณ ์๋ ์ ๋ณด๋ฅผ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ๋จ์ํ ์ฑ๋ฅ๋ฉด์์๋ ๋ถํฌ๊ธฐ๋ฐ์ด ์ฐ์ํจ.
(3) ์ ๋ ฌ์ ์ํ ๊ธฐ๋ณธ ๊ฐ์
(3) ์ ํ์ ๋ ฌ
- ์ ๋ ฌ๋์ง ์์ ๋ฐ์ดํฐ ์ค์์ ๊ฐ์ฅ ์์(๋๋ ํฐ) ๊ฐ์ ์ ํํด ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์๋ฆฌ ๋ฐ๊พธ๋ ์ ๋ ฌ ๋ฐฉ๋ฒ
- ์ด๋ฆ ๊ทธ๋๋ก “์ ํ” + “์ ๋ ฌ”์ด์์.
- ์์ ๊ฐ์ด ์ ๋ ฌ์ ์ํ ๊ธฐ๋ณธ ๊ฐ์ ์์ ์ ํ ์ ๋ ฌ์ ํ๊ฒ ๋ ๊ฒฝ์ฐ
- ์ ํ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ๋ผ์ ํด๋น ๋ฐฉ์์ผ๋ก ์ ๋ ฌ์ด ๋๊ฒ ๋๋ค.
- ๋ฐ์ดํฐ ๊ฐ์๋งํผ ๋ฐ๋ณต์ ํ๋ฉด ์ ๋ ฌ์ ํ ์ ์๊ฒ ๋๋ค.
- ์ต์๊ฐ์ ๋ฐ๋ณต์ ์ผ๋ก ์ฐพ์์ ์ ๋ ฌ์ ํด์ฃผ๋ ๋ฐฉ์์ด ๋ ์ ์๋ค.
- ์ฆ, ๋ฐ์ดํฐ n๊ฐ๊ฐ ์ฃผ์ด์ง ๋ n-1 ๋ฒ์ ๋น๊ต๊ฐ ํ์ํ๊ฒ ๋ ๊ฒ์ด๊ณ , ์ดํ ๋ค์ ์ต์๊ฐ ๋ํ n - 1์ n - 2๋ฒ์ ๋น๊ต๊ฐ ํ์ํด์ง๋ค.
- ์ฆ, ์์์ ์ ๋ฆฌํ๋ฉด ๊ฒฐ๊ณผ๋ O(n^2) ์ด ๋๋ค.
- ๊ฒฐ๊ณผ์ ์ผ๋ก ์ธ์ ๋ ๋์ผํ ์ํ ์๊ฐ์ ๊ฐ๊ฒ๋๋ค.
(4) ๋ฒ๋ธ์ ๋ ฌ
- ์ธ์ ํ ๋ ์์๋ฅผ ๋น๊ตํด์ ํฐ ๊ฐ์ ๋ค๋ก ๋ณด๋ด๋ ์ ๋ ฌ์. ์ด๋ฆ ๊ทธ๋๋ก ๊ฑฐํ์ฒ๋ผ ํฐ ๊ฐ์ด ์๋ก ์ฌ๋ผ๊ฐ๋ ๋ชจ์ต์์ ์ ๋๋จ.
- ์์ ๊ฐ์ด ์ ๋ ฌ์ ์ํ ๊ธฐ๋ณธ ๊ฐ์ ์์ ๋ฒ๋ธ ์ ๋ ฌ์ ํ๊ฒ ๋ ๊ฒฝ์ฐ
- ์ผ์ชฝ ์ค๋ฅธ์ชฝ ๋น๊ต๋ฅผ ํตํด์ ์ค๋ฅธ์ชฝ์ผ๋ก ํฐ ๊ฐ์ ๋ฐ์ด์ค์ ๋ฐ๋ณตํ๋ค๋ณด๋ฉด ์ ๋ ฌ์ด ๋จ.
[ ๋ฒ๋ธ ์ ๋ ฌ์ ํน์ง ]
- ์ํ๋ ์์๋ก ์ด๋ฏธ ์ ๋ ฌ์ด ๋์ด ์๋ ๊ฒฝ์ฐ์๋ ๋น๊ต๊ฐ ์์ด ๋ฐ๋ก ์ํ์ด ๋๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ๋น ๋ฅผ ์ ์์.
- ํ์ง๋ง, ์ญ์์ผ๋ก ์ ๋ ฌ๋์ด ์๋ ๊ฒฝ์ฐ์๋ ์ต์ ์ ๊ฒฝ์ฐ O(n^)์ด ๋ ์ ์์.
(5) ์ฝ์ ์ ๋ ฌ
- ์ฃผ์ด์ง ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋ฝ์ ํ, ๋์ด๋ ๋ฐ์ดํฐ๋ค์ด ํญ์ ์ ๋ ฌ๋ ํํ๋ฅผ ๊ฐ์ง๋๋ก ๋ฝ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ฅธ ์์น์ ์ฝ์ ํด์ ๋์ดํ๋ ๋ฐฉ์์ด๋ค.
- ์ ๋ ฅ ๋ฐฐ์ด์ ์ ๋ ฌ ๋ถ๋ถ๊ณผ ๋ฏธ์ ๋ ฌ ๋ถ๋ถ์ผ๋ก ๊ตฌ๋ถํ๊ณ
- ๋ฏธ์ ๋ ฌ ๋ถ๋ถ์ ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ๋ฐ์ดํฐ(์ฒซ ๋ฒ์งธ ๋ฐ์ดํฐ)๋ฅผ ๋ฝ์ ํ ์ ๋ ฌ๋ ๋ถ๋ถ์์ ์ ์๋ฆฌ๋ฅผ ์ฐพ์์ ์ฝ์ ํ๋ ๊ณผ์ ์ ๋ฐ๋ณต\
- ์ด๋ฏธ์ง์ ์๋ฆฌ๋ ๋งจ ์ ๋ถ๋ถ์ ๋ฐ์ดํฐ์ธ 20์ ๊ฐ์ฅ ๊ทผ์ ํ 40๊ณผ ๋น๊ต ํ ์์ผ๋ก ์ฎ๊ธฐ๊ณ , ์ดํ ๋ค์ 30๊ณผ ๋น๊ตํ ์์ผ๋ก ์ฎ๊น ๊ทธ๋ฆฌ๊ณ 10๊ณผ ๋น๊ตํ ๋ณธ์ธ์ด ๋ ํฌ๋ค๋ฉด ๊ทธ ๋ค์ ๋ฐฐ์น๊ฐ ๋จ. ( ์ฆ, ๋ณธ์ธ ๋ณด๋ค ์์ผ๋ฉด ๊ทธ ๋ค์ ์ฝ์ ์ด ๋จ. )
- ํต์ฌ์ ์ ๋ ฌ๋์ง ์์ ๋ถ๋ถ์ ์ฒซ ๋ฒ์งธ ๋ถ๋ถ๊ณผ ์ ๋ ฌ๋ ์ค๋ฅธ์ชฝ ๋๋ถํฐ ๋น๊ตํ๋ฉด์ ๋ฃ๊ฒ๋จ.
- ์ด๋ฏธ ์ ๋ ฌ์ด ๋์ด์๋ ๊ฒฝ์ฐ๊ฐ ์ต์ ์ ๊ฒฝ์ฐ, ์ญ์์ผ๋ก ์ ๋ ฌ๋ ๊ฒฝ์ฐ๋ฅผ ์ฝ์ ์ ๋ ฌ์์ ์ต์ ์ ๊ฒฝ์ฐ๋ก ๋ณธ๋ค.
'๐๋ฐฉ์กํต์ ๋ํ๊ต > ๐ป์ปดํจํฐ๊ณผํ ๊ฐ๋ก ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ปดํจํฐ๊ณผํ ๊ฐ๋ก ] 9๊ฐ - ์ปดํจํฐ ๊ตฌ์กฐ(1) (0) | 2025.09.08 |
---|---|
[์ปดํจํฐ๊ณผํ ๊ฐ๋ก ] 8๊ฐ - ์ด์์ฒด์ (2) (9) | 2025.08.27 |
[์ปดํจํฐ๊ณผํ ๊ฐ๋ก ] 7๊ฐ - ์ด์์ฒด์ (1) (2) | 2025.08.22 |
[์ปดํจํฐ๊ณผํ ๊ฐ๋ก ] 1๊ฐ - ์ปดํจํฐ์ ์๋ฃ(1) (3) | 2025.08.20 |