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

+ Recent posts