λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Algorithm/BOJ

[BOJ] 그리디 μ•Œκ³ λ¦¬μ¦˜ - κ±°μŠ€λ¦„λˆ

 

문제

νƒ€λ‘œλŠ” 자주 JOIμž‘ν™”μ μ—μ„œ 물건을 μ‚°λ‹€. JOIμž‘ν™”μ μ—λŠ” μž”λˆμœΌλ‘œ 500μ—”, 100μ—”, 50μ—”, 10μ—”, 5μ—”, 1엔이 μΆ©λΆ„νžˆ 있고, μ–Έμ œλ‚˜ κ±°μŠ€λ¦„λˆ κ°œμˆ˜κ°€ κ°€μž₯ 적게 μž”λˆμ„ μ€€λ‹€. νƒ€λ‘œκ°€ JOIμž‘ν™”μ μ—μ„œ 물건을 사고 μΉ΄μš΄ν„°μ—μ„œ 1000μ—” 지폐λ₯Ό ν•œμž₯ λƒˆμ„ λ•Œ, 받을 μž”λˆμ— ν¬ν•¨λœ μž”λˆμ˜ 개수λ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

 

μž…λ ₯ 

μž…λ ₯은 ν•œμ€„λ‘œ μ΄λ£¨μ–΄μ Έμžˆκ³ , νƒ€λ‘œκ°€ μ§€λΆˆν•  돈(1 μ΄μƒ 1000미만의 μ •μˆ˜) 1κ°œκ°€ μ“°μ—¬μ Έμžˆλ‹€.

 

 

좜λ ₯

μ œμΆœν•  좜λ ₯ νŒŒμΌμ€ 1ν–‰μœΌλ‘œλ§Œ λ˜μ–΄ μžˆλ‹€. μž”λˆμ— ν¬ν•¨λœ 맀수λ₯Ό 좜λ ₯ν•˜μ‹œμ˜€.

 

 

λ‚˜μ˜ μ½”λ“œ
money = int(input())
after = 1000 - money
count = 0
array = [500,100,50,10,5,1]

# count 값은 after값에 array의 μ›μ†Œλ₯Ό λ‚˜λˆˆ λͺ«μ„ 계속 더해주면 됨. 
# after 값은 after값에 array의 μ›μ†Œλ₯Ό λ‚˜λˆˆ λ‚˜λ¨Έμ§€ κ°’μœΌλ‘œ 계속 λ°”κΏ”μ£Όλ©΄ 됨.
for coin in array:
  count += after//coin 
  after %= coin

print(count)
뢄석 > λ°˜λ³΅λ¬Έμ„ 돌 λ•Œλ§ˆλ‹€, count 값은 (after // coin) 값이 되며 after 값은 (after % coin)이 λœλ‹€.