A問題 豆まき
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#①複数行の入力 list = [] #配列 listを宣言 for i in range(3): #3回ループ n = int(input()) #変数nに入力値を代入 list.append(n) #配列 listにnの値を追加 #②解答の作成 max = (list.index(max(list))) #変数maxに配列listの最大値の要素のインデックス(順番)を代入 min = (list.index(min(list))) #変数minに配列listの最小値の要素のインデックス(順番)を代入 for i in range(3): #3回ループ if list[i] ==list[max]: #配列 listのi番目の値が配列 listの最大値のインデックスと同じ場合 print(1) #1を出力 elif list[i] ==list[min]: #配列 listのi番目の値が配列 listの最小値のインデックスと同じ場合 print(3) #3を出力 else: #これまでの条件に当てはまらない場合 print(2) #2を出力 |
3回入力されるので、値の大きさを入力された順に表示させる問題です。
苦戦しました。大小を順番に比較する方法を考えましたが難しかったので断念しました。
アルゴリズムの本とかで出てきそうな問題だと感じました。
①複数行の入力
複数回入力を行う時は配列をループを使うと便利です。
こちらの記事では、pythonでの標準入力の方法をまとめています。
3050826691x
0120 959137
②解答の作成
入力された順に最大値か、最小値か、それ以外かで条件分岐して順位を表示させる操作を3回繰り返しました。
変数maxと変数minには、それぞれ最大値と最小値の値があるインデックス(配列 list内での順番)を保存しています。
3回ループを設定し、配列 listの先頭からlist(max)と一致するか,list(min)と一致するか、それ以外かで場合分けして順番をprintで出力しています。
コメント