Pythonのcollectionsの中にあるCounterを使ってみます。
Counterは配列の中に各Elementの数をまとめて返してくれます。
keys()はElementの名前と、
values()はElementの数をもらいます。
>>from collections import Counter >>li=[1,1,1,1,4,5,3,3,6,6,6,7[ >>Counter(li) >>({1:4,6:3,3:2,4:1,5:1,7:1}) >>li.keys() >>dict_keys{[1,4,5,3,6,7]} >>li.values() >>dict_keys{[4,1,1,2,3,1]} |
では以下は簡単なCodeです。
いまは靴屋さんがやっています。パソコンから以下の管理をやっています:
- 各Sizeの靴の数を入れます。
6 6 7 8 9 7 8 9のような入力で、
つまりSize6の靴2、Size7の靴も2つみたいな感じです。 - Customerの数を入れます。
- 次は客が靴を購入します。Sizeとその値段を入力します。
6 50
7 20のような入力で、
つまりSize6が50ドルを売れます、Size7の靴は20ドルで売れます。
いまの売上あ50+20になります。
その分はStockを減らします。もしStockが0になったら、もちろん売れないですね。 - 最後は売上を加算し、Printします。
from collections import Counter def changeInput2list(): return [int (x) for x in input().split()] # shoes=int(input()) shoes_stock=changeInput2list() counter_shoes_stock=Counter(shoes_stock) shoes_size=list(counter_shoes_stock.keys()) shoes_current_stock=list(counter_shoes_stock.values()) customers=int(input()) sales=0 for i in range(customers): data=[] data=changeInput2list() if data[0] in shoes_size: j=shoes_size.index(data[0]) if shoes_current_stock[j]>0: shoes_current_stock[j]-=1 sales+=data[1] print(sales) |