回答編集履歴
1
ロジックを修正。
answer
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
やはり辞書を使うのがよさそうですね。
|
2
2
|
pythonコードではありませんが、流れを記述してみましたので参考にしてください。
|
3
|
+
【訂正】よく考えたらロジックが間違っていたので修正しました。
|
3
4
|
|
4
5
|
```ここに言語を入力
|
5
6
|
recipe(レシピ)の入力(辞書として作成)
|
6
7
|
|
7
|
-
material(材料)の入力(辞書と
|
8
|
+
material(材料)の入力(辞書として作成)
|
8
9
|
|
9
10
|
recipeの入力データをチェック。不正ならエラー終了。
|
10
11
|
|
11
12
|
materialの入力データをチェック。不正ならエラー終了。
|
12
13
|
|
13
|
-
|
14
|
+
goods_counter = 0 # 作成数
|
14
15
|
|
15
|
-
|
16
|
+
while True: # ループ1
|
16
17
|
|
18
|
+
材料を消費する(recipeのキーで回す。for recipe_key in recipe.keys()) # ループ2
|
17
|
-
|
19
|
+
キー recipe_key が material に存在しなければ、調理できないのでループ1を脱出。
|
18
|
-
調理できないのでbreak。
|
19
|
-
|
20
|
-
|
20
|
+
個々の材料を消費する(recipe_keyキーのmaterialの値から、そのキーのrecipeの値を引く)
|
21
|
-
|
21
|
+
(material[recipe_key] -= recipe[recipe_key])
|
22
22
|
|
23
|
-
|
23
|
+
調理可能の判断(material のキーで回す。for material_key in material.keys())# ループ3
|
24
|
-
|
24
|
+
キー material_key の材料の値がマイナスなら、調理できなかったのでループ1を脱出。
|
25
25
|
|
26
26
|
作成数をカウントアップ
|
27
27
|
|