๊ทธ๋ฆฌ๋(Greedy) ์๊ณ ๋ฆฌ์ฆ
๐๊ฐ๋
- ํ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ๋ถ๋ฆฌ๋ฉฐ, ์ฌ๋ฌ ๊ฒฝ์ฐ ์ค ํ๋๋ฅผ ๊ฒฐ์ ํด์ผ ํ ๋ ๊ทธ ์๊ฐ์ ์ต์ ์ด๋ผ๊ณ ์๊ฐ๋๋ ๊ฒ์ ์ ํํด ๋๊ฐ๋ ๋ฐฉ์์ผ๋ก ์งํํ์ฌ ์ต์ข
์ ์ธ ํด๋ต์ ๋๋ฌํ๋ ๋ฐฉ๋ฒ
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ต์ ํด๋ฅผ ๊ตฌํ๋๋ฐ ์ฌ์ฉ๋๋ ๊ทผ์์์ ์ธ ๋ฐฉ๋ฒ
- ๊ฐ ์ ํ์ ์์ ์์ ์ด๋ฃจ์ด์ง๋ ๊ฒฐ์ ์ ์ง์ญ์ ์ผ๋ก๋ ์ต์ ์ด์ง๋ง, ๊ทธ ์ ํ๋ค์ ํตํด ์ต์ข
์ ์ธ ํด๋ต์ ๋ง๋ค์๋ค๊ณ ํด์ ๊ทธ๊ฒ์ด ์ต์ ์ด๋ผ๋ ๋ณด์ฅ์ด ์๋ ๊ณํ๋ฒ
๐๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์กฐ๊ฑด
- ํ์์ค๋ฌ์ด ์ ํ ์กฐ๊ฑด
- ํ์์ ์ธ ์ ํ์ ํญ์ ์์ ํ๋ค๋ ๊ฒ์ด ๋ณด์ฅ๋์ด์ผ ํจ. "์์ ํ๋ค"๋ผ๋ ์๋ฏธ๋ ์ด ์ ํ์ผ๋ก ์ธํด ์ ์ฒด ๋ฌธ์ ์ ์ต์ ํด๋ฅผ ๋ฐ๋์ ๋์ถํ ์ ์์ด์ผ ํ๋ค๋ ๊ฒ. - ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด ๊ฒฐ๊ณผ ๋์ถ ์ ์ต์ ํด๊ฐ ๋ฌด์กฐ๊ฑด ๋์ค๋?
- ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ฉด ๋ฌด์กฐ๊ฑด ์ต์ ํด๊ฐ ๋์ค๋ ๊ฒ์ ์๋!
but, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด ํธ๋ ๋ฌธ์ ๊ฐ ๋์์ ๋
์ด ์กฐ๊ฑด์ด ๋ง์กฑ๋๋๊ฐ? ๋ฅผ ์๊ฐํด ์ถฉ์กฑ๋๋ฉด ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉ.
์ฆ, ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ฉด ์ต์ ํด๊ฐ ๋์ฌ ์ ์๋ ๋ฌธ์ ํจ. - ์ต์ ๋ถ๋ถ ๊ตฌ์กฐ ์กฐ๊ฑด
- ๋ฌธ์ ์ ๋ํ ์ต์ข ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ๋ถ๋ถ ๋ฌธ์ ์ ๋ํด์๋ ๋ํ ์ต์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด๋ค๋ผ๋ ์กฐ๊ฑด
์ด ๋ง์ ์ ์ฒด ๋ฌธ์ ์ ์์๋ ์ฌ๋ฌ ๋จ๊ณ๊ฐ ์กด์ฌํ๊ณ , ์ด ์ฌ๋ฌ ๋จ๊ณ ๋ด์ ํ๋ ํ๋์ ๋จ๊ณ์ ๋ํด ์ต์ ํด๊ฐ ๋์ถ๋์ด์ผ ํ๋ค๋ ๊ฒ
๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์์ ๊ณ ๋ คํด์ผ ํ๋ ์ํฉ์ ๊ฐ๋ค์ด ์๋ก ์ํฅ์ ์ฃผ๋ฉด ์๋๋ค๋ ๊ฒ์ ์ผ๋์ ๋์ด์ผ ํจ!
๐๋ํ์ ์ธ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ์์ - ๋์ ๊ตํ ๋ฌธ์
# greedy ๋์ ๊ตํ ๋ฌธ์
coin=[500,100,50,10]
change=int(input())
answer=0 # ๋์ ๋ช๊ฐ ์ฌ์ฉํ๋์ง ์ต์๊ฐ
index=0
while(1):
cnt=change//coin[index] # index๊ฐ 0์ผ๋.. cnt 500 ๋์ ์ฌ์ฉ ๊ฐ์
change-=(cnt*coin[index]) # ๊ฑฐ์ฌ๋ฌ ์ค ๋์์ ๋์ ๊ฐฏ์*500 ๋นผ์ฃผ๊ธฐ
answer+=cnt
index+=1 # ์ธ๋ฑ์ค 1 ์ฆ๊ฐ ์์ผ์ 100์ง๋ฆฌ ๋์ ์ฌ์ฉํ ์ค๋น
if index==4:
break
print(answer)
Reference
https://ko.wikipedia.org/wiki/%ED%83%90%EC%9A%95_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98
'Problem Solving > ALGORITHM' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ (์ต๋๊ณต์ฝ์), ์ต์๊ณต๋ฐฐ์ (0) | 2022.06.01 |
---|---|
deque (0) | 2022.05.31 |
์์ด/๊ฐ์ง์น๊ธฐ (0) | 2022.03.15 |
๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ (์์ ํ์ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.03.11 |
DAT, Count Sorting (0) | 2022.02.10 |
๋๊ธ