質問編集履歴
1
can110さんの回答を受けて、追記質問
test
CHANGED
File without changes
|
test
CHANGED
@@ -263,3 +263,169 @@
|
|
263
263
|
|
264
264
|
|
265
265
|
```
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
# can110 さんの回答を受けての追記質問
|
272
|
+
|
273
|
+
|
274
|
+
|
275
|
+
以下のコードの☆の部分が質問内容です。
|
276
|
+
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
```ここに言語を入力
|
284
|
+
|
285
|
+
コード
|
286
|
+
|
287
|
+
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
recipe = {'apple': 2, 'bread': 1}
|
292
|
+
|
293
|
+
stok = {'bread': 11, 'apple': 20, 'orange': 15}
|
294
|
+
|
295
|
+
|
296
|
+
|
297
|
+
min_dish = 10000#最大所持量 / 最小レシピ量より
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
for food, amount in recipe.items():
|
302
|
+
|
303
|
+
# 持っていない
|
304
|
+
|
305
|
+
if food not in stok:
|
306
|
+
|
307
|
+
min_dish = 0
|
308
|
+
|
309
|
+
break
|
310
|
+
|
311
|
+
# 何人前作れるか。ただし最小に制限される
|
312
|
+
|
313
|
+
dish = int(stok[food] / amount)
|
314
|
+
|
315
|
+
# dish = 10, 11
|
316
|
+
|
317
|
+
☆質問部分
|
318
|
+
|
319
|
+
if dish < min_dish:
|
320
|
+
|
321
|
+
min_dish = dish
|
322
|
+
|
323
|
+
# min_Dish = 10
|
324
|
+
|
325
|
+
# 0人前ならこれ以上探しても意味がない
|
326
|
+
|
327
|
+
if min_dish <= 0:
|
328
|
+
|
329
|
+
break
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
print(min_dish)
|
334
|
+
|
335
|
+
|
336
|
+
|
337
|
+
|
338
|
+
|
339
|
+
出力値
|
340
|
+
|
341
|
+
|
342
|
+
|
343
|
+
10
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
質問内容
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
☆ dish=10,11
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
どちらの数字も dish < min_dish(10000)に該当する
|
360
|
+
|
361
|
+
10,11では求めたい数字は最小の10
|
362
|
+
|
363
|
+
|
364
|
+
|
365
|
+
10,11でもどちらでも成立してしまうのでは....
|
366
|
+
|
367
|
+
|
368
|
+
|
369
|
+
なぜ、min_dish = dish の式で
|
370
|
+
|
371
|
+
10,11 のふたつの内最小の数が最後に残るのかが理解できません。
|
372
|
+
|
373
|
+
|
374
|
+
|
375
|
+
dishのリストを作成し、min()最小値を求める方がより正確のではと思ったのですが、結果はどちらとも正常でした。
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
重ね重ね質問申し訳ありません。お時間がある時で構いませんのでお返事頂けたら幸いです。
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
# dish < min_dish の集めるリスト作成
|
386
|
+
|
387
|
+
ans = []
|
388
|
+
|
389
|
+
|
390
|
+
|
391
|
+
for food, amount in recipe.items():
|
392
|
+
|
393
|
+
# 持っていない
|
394
|
+
|
395
|
+
if food not in stok:
|
396
|
+
|
397
|
+
min_dish = 0
|
398
|
+
|
399
|
+
break
|
400
|
+
|
401
|
+
# 何人前作れるか。ただし最小に制限される
|
402
|
+
|
403
|
+
dish = (int(stok[food] / amount))
|
404
|
+
|
405
|
+
ans.append(dish)
|
406
|
+
|
407
|
+
# print('dish is ', dish)
|
408
|
+
|
409
|
+
if dish < min_dish:
|
410
|
+
|
411
|
+
min_dish = min(ans)
|
412
|
+
|
413
|
+
# print('min_dish is ',min_dish)
|
414
|
+
|
415
|
+
# 0人前ならこれ以上探しても意味がない
|
416
|
+
|
417
|
+
if min_dish <= 0:
|
418
|
+
|
419
|
+
break
|
420
|
+
|
421
|
+
|
422
|
+
|
423
|
+
print(min_dish)
|
424
|
+
|
425
|
+
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
|
431
|
+
```
|