Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm số lượng kem tối đa mua được trong Python

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