💡문제접근
- P원 지폐와 Q원 지폐 중에서 액면가가 더 높은 지폐를 이용해서 내야 하는 D원 이상의 최소 금액을 구한 다음 P원과 Q원 중 상대적으로 액면가가 높은 지폐의 수를 감소시키면서 액면가가 낲은 지폐의 수를 늘려 D원 이상의 최소 금액을 구했다.
💡코드(메모리 : 31256KB, 시간 : 40ms)
D, P, Q = map(int, input().split())
if P < Q:
P, Q = Q, P
min_cnt = (D // P + 1)
min_cost = min_cnt * P
if D % P == 0 or D % Q == 0:
min_cost = D
else:
for t in range(min_cnt - 1, -1, -1):
div, mod = divmod(D - (t * P), Q)
if mod == 0:
min_cost = D
break
temp = (t * P) + ((div + 1) * Q)
if temp == min_cost:
break
min_cost = min(min_cost, temp)
print(min_cost)
💡소요시간 : 2h