Python程序求卖鞋能赚多少钱
假设在一家鞋店里,有n种不同尺码的鞋子出现在一个称为size的数组中,并且给出了m个称为需求的客户的另一双鞋列表,其中需求[i]包含(shoe_size,money),因此需求为i的客户有要求尺码为shoe_size且他/她可以支付给定金额的鞋子。我们必须找出店主卖这双鞋能赚多少钱。
所以,如果输入像shoes=[2,3,4,5,6,8,7,6,5,18]demand=[(6,55),(6,45),(6,55),(4,40),(18,60),(10,50)],那么输出将是200,因为
第一个会以55的价格购买6码的鞋子
第二个会以45的价格购买6码的鞋子
库存中没有尺码6的鞋子
第四个会以40元的价格购买4码的鞋子
第五个会买18码的鞋子,成本是60
第六个不会得到鞋子,因为没有10码的鞋子
总收入55+45+40+60=200。
示例
让我们看下面的实现来更好地理解
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))
输入
[2,3,4,5,6,8,7,6,5,18], [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)]输出结果
200