import sys def input(): return sys.stdin.readline().rstrip() T = int(input()) dp = [i for i in range(101)] for i in range(100): for coin in [10,25]: if i +coin > 100:continue dp[i+coin] = min(dp[i+coin],dp[i]+1) for _ in range(T): N = int(input()) answer = 0 while N>0: answer += dp[N%100] N//=100 print(answer)
이 문제는 100까지의 최소 코인의 개수를 구해준 뒤에, 100단위로 나눠주면서 그 개수를 더해주면 된다.
왜냐하면
이 문제에서 쓰이는 동전은 [1,10,25]로 되어있고
각 100^k 만 곱해진 동전이기 때문이다.
'알고리즘 > 백준' 카테고리의 다른 글
[BOJ/백준] 10711 모래성 (0) | 2021.06.29 |
---|---|
[BOJ/백준] 2463 비용 (0) | 2021.06.29 |
[BOJ/백준] 1045 도로 (0) | 2021.06.29 |
[BOJ/백준] 2250 트리의 높이와 너비 (0) | 2021.06.22 |
[BOJ/백준] 2213 트리의 독립집합 (0) | 2021.06.22 |