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
반응형