問題)
あなたは連休の内 N 日間のジムにいく計画を立てています。
できる限り、ジムが空いているN日間のみ利用したいです。
ジムの混雑の割合表をみて、 N 日間の混雑割合の平均が最も低くなる日程を選びます。
入力値
連休の日数、 旅行にいくN日間
日付 割合
が与えられる。
入力例1
7 3
19 0
20 0
21 60
22 30
23 10
24 10
25 90
出力例1
22 24
入力例2
10 4
3 30
4 25
5 20
6 65
7 75
8 0
9 10
10 100
11 35
12 80
出力例2
3 6
#自分のコード
以下のコードで出力値を求められました。
一人よがりの作業で満足する前に、ほかの方からの率直なアドバイスを頂きたいです。
見づらい、わかりやすいなんでも構いません。
ご意見頂けたら幸いです。
コード a,b = map(int, input().split()) c = a-b+1 data = [ list(map(int, input().split())) for x in range(a)] lst_ratio = [] for i in range(a): lst_ratio.append(data[i][1]) lst_ratio_trans = [] for x in range(c): lst_ratio_trans.append(lst_ratio[x:b+x]) lst_days = [] for i in range(a): lst_days.append(data[i][0]) lst_days_trans = [] for x in range(c): lst_days_trans.append(lst_days[x:b+x]) ratio_sum_lst = [] for x in lst_ratio_trans: ratio_sum_lst.append(sum(x)) min_ratio = min(ratio_sum_lst) for x in range(c): if ratio_sum_lst[x] == min_ratio: ans = x else:pass print(lst_days_trans[ans][0],lst_days_trans[ans][-1])
回答3件
あなたの回答
tips
プレビュー