Algorithm/Greedy
                
              [Baekjoon 11047 / python / 실버4] 동전 0
                양선규
                 2024. 4. 5. 14:36
              
              
                    
        728x90
    
    
  반응형
    
    
    
  N, money = map(int, input().split())  # 동전 종류, 돈
coinBox = []
for _ in range(N):
    coinBox.append(int(input()))
coinBox.reverse()
cnt = 0
for coin in coinBox:  # 큰 동전부터 차례로 대입된다
    if money >= coin:
        cnt += money // coin
        money = money % coin
print(cnt)
그리디 알고리즘으로 해결할 수 있는 문제이다.
매 순간 최적의 선택을 하면 되기 때문에, 구현이 그리 어렵진 않다.
동전을 입력받은 후, 반복문을 돌리면 큰 동전부터 나오도록 reverse()메소드로 뒤집는다.
이후 큰 동전부터 반복문을 돌며, 남은 돈이 동전 가치보다 같거나 크다면 나눈다.
나눈 몫은 동전의 개수로 추가하고, 나눈 나머지는 다음 계산에 사용하면 된다.
728x90
    
    
  반응형