数列Aを並び替えて等差数列にすることができるかどうか判定する問題です。
提出
a = list(map(int, input().split()))
a.sort()
if a[2]-a[1]==a[1]-a[0]:
print("Yes")
else:
print("No")
入力は A1,A2,A3 のみなので、これをリストにします。
sort() を使うと昇順にソート(並び替え)できます。
if文を用いて、 A3-A2=A2-A1 となるかどうか判定して答えを出力します。
split()メソッド
split()メソッドは、区切り文字を指定して、文字列を分割します。
区切り文字を指定しない場合、空白、タブ、改行で分割されます。
str.split("区切り文字")
map()関数
map()関数は、イテラブル(リストやタプルなど)の各要素に関数の処理を適用します。
map(関数、イテラブル)
上記では sort() を使っていますが、公式さん曰く、A問題は関数を使わず解けるような問題を作っているようです。
ソートせずに、 A1,A2,A3 の並び替えをすべてif文で判定する方法でも求めることができます。
提出
a = list(map(int, input().split()))
ans = "No"
if a[2]-a[1]==a[1]-a[0]:
ans = "Yes"
if a[1]-a[0]==a[0]-a[2]:
ans = "Yes"
if a[0]-a[2]==a[2]-a[1]:
ans = "Yes"
print(ans)
【ABC201】解説記事リスト
「AtCoder」解説一覧に戻る