回答編集履歴
1
コード追加
test
CHANGED
@@ -9,3 +9,43 @@
|
|
9
9
|
レシピの全食材について`所持分の量 / レシピでの必要量`(少数切り捨て) の最小を求めればよいのではないでしょうか?
|
10
10
|
|
11
11
|
ただし途中で1人前すら作れないことが分かれば探索終了できます。
|
12
|
+
|
13
|
+
```Python
|
14
|
+
|
15
|
+
recipe = {'supaisu':5, 'imo':2, 'niku':2, 'mizu':3}
|
16
|
+
|
17
|
+
stok = {'mizu':7,'imo':4,'ninjin':10,'unagi':6,'supaisu':20,'niku':5}
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
min_dish = 10000 #最大所持量 / 最小レシピ量より
|
22
|
+
|
23
|
+
for food, amount in recipe.items():
|
24
|
+
|
25
|
+
# 持っていない
|
26
|
+
|
27
|
+
if food not in stok:
|
28
|
+
|
29
|
+
min_dish = 0
|
30
|
+
|
31
|
+
break
|
32
|
+
|
33
|
+
# 何人前作れるか。ただし最小に制限される
|
34
|
+
|
35
|
+
dish = int(stok[food] / amount)
|
36
|
+
|
37
|
+
if dish < min_dish:
|
38
|
+
|
39
|
+
min_dish = dish
|
40
|
+
|
41
|
+
# 0人前ならこれ以上探しても意味がない
|
42
|
+
|
43
|
+
if min_dish <= 0:
|
44
|
+
|
45
|
+
break
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
print(min_dish)
|
50
|
+
|
51
|
+
```
|