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

回答編集履歴

1

ロジックを修正。

2018/04/19 00:18

投稿

ikapy
ikapy

スコア1167

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
- good_counter = 0 # 作成数
14
+ goods_counter = 0 # 作成数
14
15
 
15
- recipeのキーで回す。(for recipe_elem in recipe.keys())
16
+ while True: # ループ1
16
17
 
18
+ 材料を消費する(recipeのキーで回す。for recipe_key in recipe.keys()) # ループ2
17
- キー recipe_elem が material に存在しなければ、
19
+ キー recipe_key が material に存在しなければ、調理できないのでループ1を脱出。
18
- 調理できないのでbreak。
19
-
20
- 消費しようとする(recipe_elemキーのmaterialから、そのキーのrecipeを引く)
20
+ 個々の材料を消費する(recipe_keyキーのmaterialの値から、そのキーのrecipeの値を引く)
21
- (material[recipe_elem] -= recipe[recipe_elem])
21
+ (material[recipe_key] -= recipe[recipe_key])
22
22
 
23
- meaterial のキーで回す。for material_elem in material.keys())
23
+ 調理可能の判断(material のキーで回す。for material_key in material.keys())# ループ3
24
- 該当キーの値が一つでもマイナスなら、調理できなのでbreak
24
+ キー material_key 材料の値がマイナスなら、調理できなかったのでループ1を脱出
25
25
 
26
26
  作成数をカウントアップ
27
27