๐ก ๊ทธ๋ฆฌ๋(Greedy) ์๊ณ ๋ฆฌ์ฆ?
- ์ต์ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ค.
- (์ ๋ ฅ) ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ณ ๋ คํ์ง ์๊ณ ์ํ๊ณผ์ ์์ ํ ์ํฉ์์ ๊ฐ์ฅ ์ข์ (locally optimal)์ ์์ฌ๋ด์ด ์ต์ ๋๋ ์ต๋ ๊ฒ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ ํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ
- ์ ์ฒด์ ์ผ๋ก ์ต์ ์ธ์ง๋ ํ๋จX, ์ค๋ก์ง ํ์ฌ ์ต์ !
- ๊ทผ์์์ ์ธ ์ ํ์ผ๋ก ๋ถ๋ถ์ ์ธ ์ต์ ํด๋ฅผ ์ฐพ๊ณ , ์ด๋ค์ ๋ชจ์์ ๋ฌธ์ ์ ์ต์ ํด๋ฅผ ์ป๋๋ค.
- ํ๋ฒ ์ ํํ๋ฉด ์ ๋ ๋ฒ๋ณต X
- ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ด ํญ์ global solution์ ์ป๋๋ค๋ ๊ฒ์ ์ฃผ์ฅํ๊ธฐ ์ํด์๋ ๋
ผ๋ฆฌ์ ์ธ ์ฆ๋ช
์ด ํ์
- ์ฆ๋ช ํ ์ ์๋ค๋ฉด, ์๊ณ ๋ฆฌ์ฆ์ ํด๋ suboptimal์ผ ์๋ ์์ผ๋ฉฐ, ์ด๊ฒฝ์ฐ ์ด๊ฒ์ ํด๋ฆฌ์คํฑ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋?
์๋์ ๋๊ฐ์ง ์กฐ๊ฑด์ด ๋ง์กฑ๋์ด์ผ ํ๋ค.
- ํ์์ค๋ฐ ์ ํ ์กฐ๊ฑด : ์์ ์ ํ์ด ์ดํ์ ์ ํ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค๋ ๊ฒ์ ์๋ฏธ
- ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ ์กฐ๊ฑด (or ์ต์ ์ฑ ์์น) : ๋ฌธ์ ์ ์ต์ ํด๊ฐ ๋ถ๋ฌธ์ ๋ค์ ์ต์ ํด๋ก๋ถํฐ ํจ์จ์ ์ผ๋ก ์์ฑ
โ ๊ฐ๋จํ ๋์ ๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ ๋ฅผ ์ดํด๋ณด์,,
- ๋งค์๊ฐ, ๋จ์ ๊ฑฐ์ค๋ฆ๋์ ์ด์ก์ ์ด๊ณผํ์ง ์๋ ์กฐ๊ฑดํ์ ๊ฐ์ฅ ํฐ ์ก๋ฉด์ ๊ฐ์ง ๋์ ์ ์ทจํจ
- ๋์ ๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ ์ ์ต์ ๋์ ์๋ฅผ ์ฐพ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ!
- ๋จ, ๋์ ์ ์ก๋ฉด์ 500์, 50์, 10์, 1์
๐ซ ํ์ง๋ง, ์ด๋ ํญ์ ์ต์ ์ ๋ต์ ์ฃผ๋ ๊ฒ์ ์๋๋ค.
- ๋ง์ฝ 160์์ง๋ฆฌ ์๋ก์ด ๋์ ์ ์ข
๋ฅ๊ฐ ์ถ๊ฐ๋ ๋,
- ๊ฑฐ์ค๋ฆ๋์ด 200์์ด๋ผ๋ฉด, 160์ 1๊ฐ, 10์ 4๊ฐ๋ฅผ ๋ฆฌํดํ๋ค.
- ์ต์๋์ ์ ๊ฑฐ์ค๋ฆ๋์ 100์์ง๋ฆฌ 2๊ฐ๊ฐ ๋๋ค.
์ด ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ฑฐ์ค๋ฆ๋ ๊ตํ ๋ฌธ์ ๋ฅผ ํ๊ฒ ๋๋ค๋ฉด, ํฐ ๋จ์์ ๋์ ์ด ์์ ๋จ์์ ๋์ ์ ๋ฐฐ์๊ฐ ๋์ด์ผ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํ ์ ์๋ค.
- 160์์ 10์, 1์์ ๋ฐฐ์์ง๋ง, 50์, 100์์ ๋ฐฐ์๊ฐ ๋์ง ์๊ธฐ ๋๋ฌธ์ ์ ์ฉ ๋ถ๊ฐ๋ฅ
โฐ๋ฐ๋ผ์, ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ๋๋ ์ ์ฒด์ ์ธ ์ต์ ํด ์ธ์ง๋ฅผ ํญ์ ์ผ๋ํด์ผํ๋ค. ์ฆ, ์ฌ์ฉํด๋ ๋๋์ง ๊ฒ์ฆ๋จ๊ณ๋ฅผ ๊ผญ ๊ฑฐ์น๊ธฐ!
โฐ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉ
- ์ต์ ์ ์ฅ ํธ๋ฆฌ (MST) : ํฌ๋ฆฌ์ค์ปฌ ์๊ณ ๋ฆฌ์ฆ[O(mlogm)] (m์ ๊ทธ๋ํ์ ์ ๋ถ์ ์), ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ[O(n^2)]
- ์ต๋จ ๊ฒฝ๋ก ์ฐพ๊ธฐ : ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ [O(n^2)]
- ๋ถ๋ถ ๋ฐฐ๋ญ ๋ฌธ์ [O(nlogn)]
- ์งํฉ ์ปค๋ฒ ๋ฌธ์ [O(n^3)]
- ์์ ์ค์ผ์ฅด๋ง [O(nlogn)] + O(mn) (n์ ์์ ์ ์, m์ ๊ธฐ๊ณ์ ์)
- ํํ๋ง ์์ถ [O(nlogn)]
Reference
์์ธ๊ณผํ๊ธฐ์ ๋ํ๊ต ์ปดํจํฐ๊ณตํ๊ณผ ์๊ณ ๋ฆฌ์ฆ ์์
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ์ต์ ์ ์ฅ ํธ๋ฆฌ : ํฌ๋ฃจ์ค์ปฌ & ํ๋ฆผ ์๊ณ ๋ฆฌ์ฆ (0) | 2021.10.11 |
---|---|
[Algorithm] ์ต๊ทผ์ ์ ์ ์ ์๊ณ ๋ฆฌ์ฆ (Closest Pair) (0) | 2021.10.06 |
[Algorithm] ๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ (0) | 2021.10.06 |
[Algorithm] ์ ํ๋ฌธ์ ์๊ณ ๋ฆฌ์ฆ (feat. Quick-Sort) (0) | 2021.09.29 |
[Algorithm] ํฉ๋ณ์ ๋ ฌ (Merge sort) (0) | 2021.09.28 |