Cho mảng costs (giá các loại kem) và số xu c. Mua nhiều kem nhất có thể (mỗi loại tối đa 1). Tìm số kem tối đa.
Ví dụ: costs = [3,1,4,5,2], c = 10 → output = 4 (mua giá 1,2,3,4 = 10).
Giải thuật (Greedy: mua loại rẻ nhất trước)
- Sắp xếp costs tăng dần.
- Duyệt i=0..n-1: nếu c ≥ costs[i] → c -= costs[i], count++. Ngược lại dừng.
Code Python
def solve(costs, c):
costs.sort()
i = 0
while i < len(costs) and c >= costs[i]:
c -= costs[i]
i += 1
return i
costs = [3, 1, 4, 5, 2]
c = 10
print(solve(costs, c)) # 4
Đầu vào / Đầu ra
Input: [3,1,4,5,2], 10
Output: 4