回答編集履歴
1
コード追加
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
|
+
```
|