๐ฌ ํด๋น ํฌ์คํ ์ ๋๋๋น๋์ (์ด์ฝํ 2021 ๊ฐ์ ๋ชฐ์๋ณด๊ธฐ) 2. ๊ทธ๋ฆฌ๋ & ๊ตฌํ ๊ฐ์๋ฅผ ๋ฃ๊ณ ์์ฝํ ๊ธ์ ๋๋ค.
โ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy) ์ด๋?
ํ์ฌ ์ํฉ์์ ์ง๊ธ ๋น์ฅ ์ข์ ๊ฒ๋ง ๊ณ ๋ฅด๋ ๋ฐฉ๋ฒ์ด๋ค.
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ ๋๋ ์ค์ํ ์ ์ด ์๋๋ฐ, ํด๋น ๋ฐฉ๋ฒ์ ์ ๋น์ฑ์ ๋ถ์ํ๋ ๊ฒ์ด๋ค. ๋จ์ํ ๊ฐ์ฅ ์ข์ ๋ณด์ด๋ ๊ฒ๋ง์ ๋ฐ๋ณต์ ์ผ๋ก ์ ํํด๋ ์ต์ ์ ํด๋ฅผ ๊ตฌํ ์ ์๋ ์ง ๊ฒํ ํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
์ผ๋ฐ์ ์ธ ์ํฉ์์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ์ ํด๋ฅผ ๋ณด์ฅํ ์ ์์ ๋๊ฐ ๋ง์ง๋ง, ์ฝ๋ฉ ํ ์คํธ์์์ ๋๋ถ๋ถ์ ๊ทธ๋ฆฌ๋ ๋ฌธ์ ๋ ํ์๋ฒ์ผ๋ก ์ป์ ํด๊ฐ ์ต์ ์ ํด๊ฐ ๋๋ ์ํฉ์์, ์ด๋ฅผ ์ถ๋ก ํ ์ ์์ด์ผ ํ๋ฆฌ๋๋ก ์ถ์ ๋๋ค.
โผ ์) ๊ฑฐ์ค๋ฆ ๋ ๋ฌธ์
๋์ ์ผ๋ก ๊ฑฐ์ค๋ฆ ๋์ ์ฃผ๋ ค๊ณ ํ๋๋ฐ 500์, 100์, 50์, 10์์ด ๋ฌดํ์ผ๋ก ์๋ค๊ณ ๊ฐ์ ํ๋ค. ๊ฑฐ์ค๋ฆ ๋์ด N ์ด๋ผ๊ณ ํ ๋, ์ค ์ ์๋ ๋์ ์ ์ต์ ๊ฐ์๋ฅผ ๊ตฌํ์์ค.
์๋ฅผ ๋ค์ด ์ ๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ ์์ ๊ฐ์ฅ ํฐ ํํ ๋จ์๋ถํฐ ๋์ ๊ฑฐ์ฌ๋ฌ ์ฃผ๋ ๊ฒ์ด ์ต์ ์ ํด๋ฅผ ๋ณด์ฅํ๋ ์ด์ ๋ ๋์ ์ค์์ ํฐ ๋จ์๊ฐ ํญ์ ์์ ๋จ์์ ๋ฐฐ์์ด๋ฏ๋ก ์์ ๋จ์์ ๋์ ๋ค์ ์ข ํฉํด ๋ค๋ฅธ ํด๊ฐ ๋์ฌ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ง์ฝ 800์์ ๊ฑฐ์ฌ๋ฌ ์ค์ผ ํ๋๋ฐ ํํ ๋จ์๊ฐ 500์, 400์, 100์ด๋ผ๋ฉด ์ ๋ฐฉ์์ ์ต์ ์ ํด๊ฐ ์๋๊ฒ ๋๋ค. (500์ 1๊ฐ, 100์ 3๊ฐ/400์ 2๊ฐ)
๋ฐ๋ผ์ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์์๋ ๋ฌธ์ ํ์ด๋ฅผ ์ํ ์ต์ํ์ ์์ด๋์ด๋ฅผ ๋ ์ฌ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ ๋นํ ์ง ๊ฒํ ํ ์ ์์ด์ผ ํ๋ค.
โ ๊ตฌํ(Implementation) ์ด๋?
๋จธ๋ฆฟ ์์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ค์ฝ๋๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์ด๋ค. ๊ตฌํ์ ์๋ฎฌ๋ ์ด์ , ๋๋ ์์ ํ์์ด๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํ๋ค.
ํ์ด๋ฅผ ๋ ์ฌ๋ฆฌ๋ ๊ฒ์ ์ฝ์ง๋ง ์์ค์ฝ๋๋ก ์ฎ๊ธฐ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ๋ฅผ ์ง์นญํ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ๋จํ๋ฐ ์ฝ๋๊ฐ ์ง๋์น ๋งํผ ๊ธธ์ด์ง๋ ๋ฌธ์
- ์ค์ ์ฐ์ฐ์ ๋ค๋ฃจ๊ณ , ํน์ ์์์ ์๋ฆฌ๊น์ง ์ถ๋ ฅํด์ผ ํ๋ ๋ฌธ์
- ๋ฌธ์์ด์ ํน์ ํ ๊ธฐ์ค์ ๋ฐ๋ผ์ ๋์ด ์ฒ๋ฆฌํด์ผ ํ๋ ๋ฌธ์
- ์ ์ ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐพ์์ ์ฌ์ฉํด์ผ ํ๋ ๋ฌธ์
์ผ๋ฐ์ ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์์์ 2์ฐจ์ ๊ณต๊ฐ์ ํ๋ ฌ์ ์๋ฏธ๋ก ์ฌ์ฉ๋๋ค. Java์์์ 2์ฐจ์ ๋ฐฐ์ด๊ณผ ๋น์ทํ ๊ฐ๋ ์ด๋ค.
์๋ฎฌ๋ ์ด์ ๋ฐ ์์ ํ์ ๋ฌธ์ ์์๋ 2์ฐจ์ ๊ณต๊ฐ์์์ ๋ฐฉํฅ ๋ฒกํฐ๊ฐ ์์ฃผ ํ์ฉ๋๋ค.
์ด ๋, ๋์๋จ๋ถ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฒกํฐ๋ฅผ ์ ์ํ ์ ์๋ค. dx = {0, 0. 1, -1}, dy = {1, -1, 0, 0} . ์ด์ ๊ฐ์ด ๋ค๋ฅธ ๋ฐฉํฅ๋ค๋ ๋ฐฐ์ด์ ์ฌ์ฉํด์ ์ ์ฅํ๊ณ ํ์ฉํ ์ ์๋ค.
์ ์๊ณ ๋ฆฌ์ฆ์ ๋ํ ๋ฌธ์ ํ์ด๋ ์ฐจ์ฐจ ์ถ๊ฐํ ์์ ์ด๋ค!
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ์์ ๊ตฌํ๊ธฐ (Java) (0) | 2023.09.22 |
---|