Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để tìm kiếm bao nhiêu tiền khi bán giày

Giả sử trong một cửa hàng bán giày có n đôi giày khác nhau với các kích cỡ khác nhau có mặt trong một mảng được gọi là size và một danh sách các đôi khác cho m khách hàng được gọi là nhu cầu được đưa ra, trong đó nhu cầu [i] chứa (giày_size, tiền) nên một khách hàng có nhu cầu một nhu cầu về giày có kích thước là shoe_sizea và anh ấy / cô ấy có thể trả một số tiền nhất định. Chúng ta phải tìm xem chủ tiệm có thể kiếm được bao nhiêu tiền khi bán những đôi giày này.

Vì vậy, nếu đầu vào là giày =[2,3,4,5,6,8,7,6,5,18] nhu cầu =[(6,55), (6,45), (6,55) , (4,40), (18,60), (10,50)], thì đầu ra sẽ là 200 vì

  • người đầu tiên sẽ mua giày cỡ 6 với giá 55

  • người thứ hai sẽ mua giày cỡ 6 với giá 45

  • Không có giày có size 6 trong kho

  • người thứ tư sẽ mua giày cỡ 4 với giá 40

  • người thứ năm sẽ mua giày cỡ 18 với giá 60

  • người thứ sáu sẽ không nhận được giày vì không có giày cỡ 10


Tổng kiếm được 55 + 45 + 40 + 60 =200.


Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • n:=kích thước của nhu cầu
  • kích thước:=bản đồ chứa tần số giày dựa trên kích cỡ
  • kiếm được:=0
  • đối với tôi trong phạm vi từ 0 đến n - 1, thực hiện
    • (sz, price):=nhu cầu [i]
    • nếu giày có kích thước sz có kích thước thì
      • kích thước [sz]:=kích thước [sz] - 1
      • kiếm được:=kiếm được + giá
  • hoàn lại tiền kiếm được

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn

from collections import Counter
def solve(shoes, demand):
   n = len(demand)
   sizes = Counter(shoes)
   earn = 0
   for i in range(n):
      sz, price = demand[i]
      if sizes[sz]:
         sizes[sz] -= 1
         earn += price
   return earn

shoes = [2,3,4,5,6,8,7,6,5,18]
demand = [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)]
print(solve(shoes, demand))

Đầu vào

[2,3,4,5,6,8,7,6,5,18], [(6,55), (6,45), (6,55), (4,40), (18,60),
(10,50)]

Đầu ra

200