Algorithms/Algorithms
[์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ณธ] ์์ ํ์ (๋ธ๋ฃจํธ ํฌ์ค Brute Force)
์์ ํ์, ๋ธ๋ฃจํธ ํฌ์ค(Brute Force) Brute Force ์ง์ญํ๋ฉด ์ง์น๊ฐ์ ํ, ๋ฌด์ํ ํ์ด๋ผ๋ ๋ป์ด๋ค. ์์ ํ์์ด๋ผ๋ ์ด๋ฆ์์๋ ์ ์ ์๋ฏ์ด ํ๋๋ถํฐ ์ด๊น์ง ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ํ์ํ๋ ๋น์ฐํ ์ ๋ต์ ์ฐพ์ ์ ์๋ค. ์์ ํ์ ์์ 3์๋ฆฌ๋ก ๊ตฌ์ฑ๋ ์๋ฌผ์ ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ๊ธฐ ์ํด 000 ~ 999๊น์ง ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ๋ ฅํด๋ณด๋ ๊ฒ์ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค. 999๊น์ง ์ ๋ ฅํ ๊ฒ์ ์๊ฐํ๋ฉด ๋ฒ์จ๋ถํฐ ๋ชธ์ด์ด ๋๋ค. ์๋? ๋๋ฝ๊ฒ ์ค๋ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ด๋ค. (This is ๊ฒฝํ๋ด) ์ฌ๊ธฐ์ ์์ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฅ์ ๊ณผ ๋จ์ ์ ์ ์ ์๋ค. ์์ ํ์ ์ฅ์ & ๋จ์ ์ฅ์ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์ ํ์คํ ์ ๋ต์ ์ฐพ์ ์ ์๋ค. ๋ณต์กํ ์๊ณ ๋ฆฌ์ฆ ์์ด ๋น ๋ฅด๊ฒ ๊ตฌํ์ด ๊ฐ๋ฅ..
[์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ณธ] ํ์(Greedy) ์๊ณ ๋ฆฌ์ฆ
1. ํ์ ์๊ณ ๋ฆฌ์ฆ (Greedy Algorithms) ํ์(Greedy)์ ๋ง ๊ทธ๋๋ก ์ง๋์น๊ฒ ์์ฌ์ด ๋ง๋ค๋ ๋ป์ด๋ค. ๊ทธ๋ ๋ค๋ฉด ํ์์๊ณ ๋ฆฌ์ฆ์ ๋ฌด์์ผ๊น? ๋ฏธ๋๋ฅผ ์๊ฐํ์ง ์๊ณ ํ์ฌ์ ๋จ๊ณ์์ ๊ฐ์ฅ ์ต์ ์ ์ ํ์ ํ๋ ๊ฒ์ ํ์์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ํ๋ค. ๋์ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋จํ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉ ์ ๋ง์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์ฌ์ฉ๋ผ ๋นํจ์จ์ ์ด๋ค. (๋์ ํ๋ก๊ทธ๋๋ฐ : ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ๊ฒํ ํด ์ ํ์์ ํตํด ๊ตฌ์ฑ) ๋์ ํ๋ก๊ทธ๋๋ฐ์ ๋์ฒดํ๋ ๊ฒ์ ์๋๊ณ ๋์ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ฐ์ด ์ํฉ์ ๋ง๊ฒ ์ฐ์ด๋ ๊ฒ์ด ํ์์๊ณ ๋ฆฌ์ฆ์ด๋ค. 2. ํ์์๊ณ ๋ฆฌ์ฆ์ ์ฑ๋ฆฝ ์กฐ๊ฑด ํ์์ ์ ํ ์์ฑ(Greedy Choice Property) : ํ์์ ์ ํ์ด ์ ์ฒด ๋ฌธ์ ์ ์ต์ ํด๋ฅผ ๊ตฌํ ์ ์๋ค , ์์ ์ ํ์ด ๋ค์ ์ ํ์ ์ํฅ์ ์ฃผ์ง ์๋๋ค. ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ(O..
[์๊ณ ๋ฆฌ์ฆ ๊ธฐ๋ณธ] ํ๋ ธ์ดํ ์๊ณ ๋ฆฌ์ฆ
1. ํ๋ ธ์ดํ ์๊ณ ๋ฆฌ์ฆ ์๋ฆฌ ํ๋ ธ์ดํ์ ์ฌ๊ท๋ฅผ ์ด์ฉํ ๋ํ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์๋ ค์ ธ ์๋ค. ์ด 3๊ฐ์ ๊ธฐ๋ฅ์ด ์กด์ฌํ๋ค. ์ฃผ์ด์ง n๊ฐ์ ์ํ์ ๋ค๋ฅธ ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ์ ๋งํ๋ค. ์ด๋ ๋ช ๊ฐ์ง ๊ท์น๋ค์ด ์กด์ฌํ๋ค. ํ ๋ฒ์ ๋ฑ ํ ๊ฐ์ ์ํ๋ง ์ด๋ํ ์ ์๋ค. ์ฎ๊ฒจ์ง ์ํ์ ๋ฌด์กฐ๊ฑด ๋งจ ์์ ์ฌ๋ผ๊ฐ๋ค. ๋งจ ์์ ์๋ ์ํ๋ง ์ฎ๊ธธ ์ ์๋ค. ํฌ๊ธฐ๊ฐ ํฐ ์ํ์ ์์ ์ํ ์๋ก ์ฌ๋ผ๊ฐ ์ ์๋ค. ํ๋ ธ์ดํ์ 3๋ฒ์งธ ๊ธฐ๋ฅ์ผ๋ก ์ฎ๊ธฐ๋๋ฐ ํ์ํ ์ดํ์๋ "2^n - 1" ๋ฒ์ด๋ค. ์๋ฅผ ๋ค์ด 3๊ฐ์ ์ํ์ ์ฎ๊ธด๋ค๊ณ ์๊ฐํด๋ณด์. A์ ์๋ 3๊ฐ์ง๋ฆฌ ๊ธฐ๋ฅ์ C๋ก B๋ก ์ฎ๊ธฐ๋ ๊ณผ์ ์ด๋ค. ์ฐ์ 3๋ฒ ์ํ์ ์ฎ๊ธฐ๊ธฐ ์ํด์๋ ์์ ์๋ 1๋ฒ๊ณผ 2๋ฒ ์ํ์ C๋ก ์ฎ๊ฒจ์ผ ํ๋ค. 1๋ฒ ์ํ์ A์์ B๋ก ์ด๋ 2๋ฒ ์ํ์ A์์ C๋ก ์ด๋ ..