문제
https://www.acmicpc.net/problem/11047
풀이
전형적인 그리디 문제이다
목표 금액보다는 작은 동전중 가장 큰 숫자를 계속해서 취해 나가면 된다.
동전의 가치는 오름차순으로, 이전 숫자의 배수로 주어지기때문에
3 900
300
800
이런 테스트 케이스와 같이 800을 먼저 취했더니 300을 취할 수 없는 상황같은건 고려하지 않아도 된다.
정답 코드
N, K = map(int, input().split())
coins = [int(input()) for _ in range(N)]
coins.sort(reverse=True)
answer = 0
for coin in coins:
while coin <= K:
K-= coin
answer += 1
print(answer)
'알고리즘 > 백준' 카테고리의 다른 글
[백준/Python] 11279번. 최대 힙 (0) | 2024.11.15 |
---|---|
[백준/Python] 1927번. 최소 힙 (0) | 2024.11.15 |
[백준/Python] 2167번. 2차원 배열의 합 (0) | 2024.11.15 |
[백준/Python] 9017번. 크로스 컨트리 (0) | 2024.11.15 |
[백준/Kotlin] 28702번. FizzBuzz (0) | 2024.10.22 |