😽

atcoder-ABC253[A問題]

2022/06/04に公開

初めに

本記事では、atcoder-ABC253のA問題を解説します!
中央値をどう求めるかが重要となる問題です。
https://atcoder.jp/contests/abc253/tasks/abc253_a

input

まず、入力の受け取り方を説明します。

  • 1つの文字列の入力を取得する方法
a = input()
print(a)

・入力: あ - 出力: あ

  • 1つの整数の入力を取得する方法
b = int(input())
print(b)

・入力: 3 - 出力: 3

  • 複数の文字列の入力を取得する方法
c = input().split()
print(c)

・入力: あ い う - 出力: ['あ', 'い', 'う']

  • 複数の整数の入力を取得する方法
d = list(map(int, input().split()))
print(d)

・入力: 1 2 3 - 出力: [1, 2, 3]

  • 複数行の文字列の入力を取得する方法
e = [input() for i in range(3)]
print(e)

・入力:



・出力: ['あ', 'い', 'う']

  • 複数行の整数の入力を取得する方法
f = [int(input()) for i in range(3)]
print(f)

・入力:
1
2
3
・出力: [1, 2, 3]

map

入力の受け取り方の説明にmapが登場したので、mapの説明します。mapを使うと、リストやタプルなどイテラブルのすべての要素に組み込み関数を適用することができます。

list = [-3, 2, -10]
for i in map(abs, list):
    print(i)

・出力
3
2
10

結果をリストに変換することもできます。

print(list(map(abs, lis)))

・出力: [3, 2, 10]

sortとsorted

中央値を求める際に数字を昇順、降順に並べ替える必要があります。並べ替えに使う関数としてsort, sortedがあります。

old = [20, 40, 30, 50, 10]
old.sort()
print(old)

・出力: [10, 20, 30, 40, 50]

old = [20, 40, 30, 50, 10]
new = sorted(old, reverse=True)
print(old)
print(new)

・出力
[20, 40, 30, 50, 10]
[50, 40, 30, 20, 10]

sortはsortedと異なり、元のリストが変更されるため、注意が必要です。また、デフォルトでは昇順となっているため、降順に並べ替えたい場合は、引数reverseをTrueにします。

ABC253のA問題を解説

整数a,b,cが与えられ、bが中央値であるかどうか判定します。そのためには、3つの整数a,b,cの中央値を求める必要があります。中央値を求める際に、sortedを用います。以下が解答例となるので、ぜひ参考にして下さい!

num = list(map(int, input().split()))
b = num[1]
m = sorted(num)[1]
if b == m:
    print('Yes')
else:
    print('No')
GitHubで編集を提案

Discussion