A問題 プロコン
1 2 3 4 5 6 7 8 9 |
list = [] #配列listを宣言 for i in range(3):#入力回数の3回分ループ s,e = map(int,input().split()) #sとeにint型に変換して入力値を代入 list.append([s,e]) #sとeを配列にしてlistへ格納 #① ans = 0 #変数ansに0を代入して宣言 for i in range(3): ##入力回数の3回分ループ ans += list[i][0]*list[i][1]/10 #② print(int(ans)) |
2つの入力値s,eが3回、合計で6つのデータが与えられるので、入力の度にsとeを掛け算し、その合計値を求める問題です。エクセルで言うSUMPRODUCT関数のようなイメージを持ちました。
①複数行複数列の入力
今回の問題では、以下のようにスペース区切りで2つの値が3回入力されます。
s1 e1
s2 e2
s3 e3
list.append([s,e])では、入力された値sとeを配列にした上で、さらに配列 listに追加しています。この操作を3回繰り返すので配列 listの中に3つの配列が追加され、listは二次元配列になります。
➡︎[ [s1,e1],[s2,e2],[s3,e3] ]
入力が複数行に渡る場合など、こちらでpythonでの標準入力の方法をまとめています。
②配列の要素の選択
二次元配列 listの中身はこのようになっています。
➡︎[ [s1,e1],[s2,e2],[s3,e3] ]
それぞれを以下で表すことができます。
s1:list[0][0]
e1:list[0][1]
e2:list[1][0]
s2:list[1][1]
e3:list[2][0]
s3:list[2][1]
変数iを使って list[i][0]といった形で表し、ループを行なって配列の各要素に操作をすることもできます。
コメント