質問するログイン新規登録

回答編集履歴

1

コード追加

2018/04/19 01:39

投稿

8524ba23
8524ba23

スコア38350

answer CHANGED
@@ -3,4 +3,24 @@
3
3
 
4
4
  より、レシピと所持分それぞれの中では、相異なる同じ食材が複数回登場することはないので
5
5
  レシピの全食材について`所持分の量 / レシピでの必要量`(少数切り捨て) の最小を求めればよいのではないでしょうか?
6
- ただし途中で1人前すら作れないことが分かれば探索終了できます。
6
+ ただし途中で1人前すら作れないことが分かれば探索終了できます。
7
+ ```Python
8
+ recipe = {'supaisu':5, 'imo':2, 'niku':2, 'mizu':3}
9
+ stok = {'mizu':7,'imo':4,'ninjin':10,'unagi':6,'supaisu':20,'niku':5}
10
+
11
+ min_dish = 10000 #最大所持量 / 最小レシピ量より
12
+ for food, amount in recipe.items():
13
+ # 持っていない
14
+ if food not in stok:
15
+ min_dish = 0
16
+ break
17
+ # 何人前作れるか。ただし最小に制限される
18
+ dish = int(stok[food] / amount)
19
+ if dish < min_dish:
20
+ min_dish = dish
21
+ # 0人前ならこれ以上探しても意味がない
22
+ if min_dish <= 0:
23
+ break
24
+
25
+ print(min_dish)
26
+ ```