🧩 Algorithm/SWEA

[SWEA] 1970. μ‰¬μš΄ κ±°μŠ€λ¦„λˆ (Python/D2)

devCloud 2023. 11. 6. 16:10
728x90
 

SW Expert Academy

SW ν”„λ‘œκ·Έλž˜λ° μ—­λŸ‰ 강화에 도움이 λ˜λŠ” λ‹€μ–‘ν•œ ν•™μŠ΅ 컨텐츠λ₯Ό ν™•μΈν•˜μ„Έμš”!

swexpertacademy.com


μ„€λͺ…

κ±°μŠ€λ¦„λˆμ„ μ΅œμ†Œ ν™”νλ‘œ κ±°μŠ¬λŸ¬μ€˜μ•Ό ν•œλ‹€. 돈의 μ’…λ₯˜λŠ” μ•„λž˜μ™€ 같이 μ‘΄μž¬ν•œλ‹€.

50,000 원, 10,000 원, 5,000 원, 1,000 원 , 500 원, 100 원, 50 원, 10 원

 

풀이

그리디 μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. λ‹¨μˆœ κ΅¬ν˜„ λ¬Έμ œμ΄λ‹€.

 

1. ν™”νμ˜ μ’…λ₯˜λ₯Ό ν•œ λ¦¬μŠ€νŠΈμ— μ €μž₯ν•œλ‹€.

2. 반볡문으둜 리슀트λ₯Ό λŒλ¦°λ‹€.

3. κ±°μŠ€λ¦„λˆμ„ ν™”νμ˜ μ’…λ₯˜ 쀑 ν•˜λ‚˜λ‘œ λ‚˜λˆˆ λͺ«μ„ λ”°λ‘œ μ €μž₯ν•œλ‹€.

  • λ§Œμ•½ κ±°μŠ€λ¦„λˆμ΄ 32850원일 λ•Œ, λ‚˜λˆŒ 수 μžˆλŠ” 제일 큰 ν™”νλŠ” 10000원이닀.
  • 10000μ›μœΌλ‘œ λ‚˜λˆˆ λͺ«μ€ 3이닀. 즉, 3μž₯의 10000μ›μœΌλ‘œ 거슬러 쀄 수 μžˆλ‹€λŠ” 말이닀.

4. κ±°μŠ€λ¦„λˆμ„ λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό λ‹€μ‹œ κ±°μŠ€λ¦„λˆ λ³€μˆ˜μ— μ €μž₯ν•œλ‹€.

  • 거슬러주고 남은 λˆμ€ 또 λ‹€λ₯Έ μž‘μ€ ν™”νλ‘œ 거슬러 쀄 수 μžˆμœΌλ―€λ‘œ κ±°μŠ€λ¦„λˆ λ³€μˆ˜μ— λ‚˜λ¨Έμ§€λ₯Ό μ €μž₯ν•œλ‹€.
  • μœ„μ—μ„œ 10000μ›μœΌλ‘œ λ‚˜λˆˆ λ‚˜λ¨Έμ§€λŠ” 2850원이고, λ‹€μ‹œ λ°˜λ³΅λ¬Έμ„ λŒλ¦°λ‹€.
  • 10000원 λ‹€μŒμ€ 5000원(i)인데 5000원이 κ±°μŠ€λ¦„λˆλ³΄λ‹€ ν¬λ―€λ‘œ 거슬러 쀄 수 μ—†μœΌλ―€λ‘œ λ‹€μŒ i인 1000μ›μœΌλ‘œ λ„˜μ–΄κ°„λ‹€.
  • μ΄λŸ°μ‹μœΌλ‘œ λ°˜λ³΅ν•œλ‹€.

5. λͺ«μ„ 좜λ ₯ν•˜κ³  μœ„ 과정을 λ°˜λ³΅ν•œλ‹€.

 

 

Solution

t = int(input())
money = [50000, 10000, 5000, 1000, 500, 100, 50, 10]

def calc(n):
    for i in money:
        ans = 0
        if n >= i:
            ans = n // i #화폐 개수 (32850 / 10000 = 3)
            n %= i # 거슬러주고 남은 돈 (n = 2850) 
        print(ans, end= " ")

for i in range(1, t+1):
    n = int(input()) #κ±°μŠ€λ¦„λˆ
    print("#"+str(i))
    calc(n)
    print() #λ‹€μŒ μž…λ ₯을 μœ„ν•΄

πŸ‘©‍πŸ’» 회고

κ·Έλ¦¬λ””λŠ” λ°±μ€€μ—μ„œ 많이 ν’€μ—ˆλ˜ λ¬Έμ œλΌμ„œ μ–΄λ ΅μ§€ μ•Šκ²Œ ν’€ 수 μžˆμ—ˆλ‹€. λ‹€λ§Œ μ²˜μŒμ—” λ¦¬μŠ€νŠΈμ— 화폐λ₯Ό μ €μž₯ν•˜μ§€ μ•Šκ³  5와 10으둜 λ‚˜λˆ„λ©΄μ„œ ν’€λ €κ³  ν–ˆλŠ”λ° λ³΅μž‘ν•΄μ Έμ„œ μ–΄λ–»κ²Œ ν’€μ–΄μ•Ό ν•˜λ‚˜ κ±±μ •μ΄μ—ˆλ‹€. λ‹€ν–‰νžˆλ„ λ¦¬μŠ€νŠΈμ— μ €μž₯해놓고 λ°˜λ³΅λ¬Έμ„ λŒλ¦¬λ©΄μ„œ ν‘ΈλŠ” 방법이 κΈ°μ–΅λ‚˜μ„œ μ΄ν›„λΆ€ν„°λŠ” κ΅¬ν˜„λ„ 문제 μ—†μ—ˆκ³ , 첫 μ œμΆœμ— λ°”λ‘œ νŒ¨μŠ€ν–ˆλ‹€.

728x90