#Pythonで問題を解いているのですがTimed Outと出てしまい、どうしていいか分かりません。
(問題)
We want make a package of goal kilos of chocolate. We have small bars (1 kilo each) and big bars (5 kilos each). Return the number of small bars to use, assuming we always use big bars before small bars. Return -1 if it can't be done.
チョコレートのパック(goal)を作りたい。1kgの小さいチョコバーと5kgの大きいチョコバーがある。小さいチョコバーはいくつ必要かを返しなさい。(最初に大きいチョコバーを用いてください)また、作れない場合は-1を返してください。make_chocolate(small,big,goal)
smallには1kgのチョコバーの数、bigには5kgのチョコバーの数、goalには目標のkgを渡します。
make_chocolate(4, 1, 9) → 4
make_chocolate(4, 1, 10) → -1
make_chocolate(4, 1, 7) → 2
自分のコードはいかになります。
Python
1def make_chocolate(small, big, goal): 2 if goal>small+big*5: 3 return -1 4 if goal<5: 5 count=0 6 for i in range(1,small+1): 7 zero=goal-1 8 count+=1 9 if zero==0: 10 return count 11 if zero!=0: 12 return -1 13 else: 14 target=goal 15 amount=big 16 for i in range(big): 17 target=goal-5 18 amount-=1 19 if target>=5 and amount!=0: 20 continue 21 if target<5: 22 break 23 if amount==0: 24 break 25 if target<=small: 26 return target 27 else: 28 return -1
Pycharmで確認したところしっかりと値を返しているのですがどのように実行時間を縮めるのでしょうか?方法を教えて頂けると大変助かります。
回答2件
あなたの回答
tips
プレビュー