問題
回答
a = [int(input()) for _ in range(5)]
b = []
c = 0
ans = 0
for i in range(5):
if a[i] % 10 != 0: #10で割り切れなかったら
c = max(c, 10 - a[i] % 10) #標準入力の中で一番大きいあまりの差分である数をcに代入。5こめは10の倍数まで足す必要ないので最後にひく。
a[i] += 10 - a[i] % 10 #余りに対して10の倍数になるように足す。
b.append(a[i]) #10までの標準入力に10の位の数までの数字を足した数字を配列として代入。
else: #割り切れたら
b.append(a[i]) #bに配列として代入する。
ans = sum(b) - c #bの数は全てあまりの数を入れている。最後の数は10の位になる時刻を待つ必要ないのでcを引く。
print(ans)
ポイント
10の位の時刻まで一番差分が大きい数を最後に足せば、最短の時刻になる。最後に注文する数は10の位の時刻になるまで待つ必要がないから。
#標準入力
101
86
119
108
57
上記の標準入力の時、前の順番を変えてARC カレー →ABC 丼 → AGC パスタ → ATC ハンバーグ → APC ラーメンの順にしても合計値は変わらない。
前検索を使うことはわかったが、10の位の時刻まで一番差分が大きい数を最後に足せば良いという部分がわからず。