【ABC143 A】「Curtain」を解く【Python3】

abc143a

「AtCoder」解説一覧へ

長さAの窓に長さBのカーテン2枚を取り付けたときに、隠されていない部分の最小値を求める問題です。

縦方向には十分な長さがあるカーテン、ということで、横方向のみを考えます。

提出
a, b = map(int, input().split())
ans = 0

if a >= b * 2:
    ans = a - b * 2
else:
    ans = 0

print(ans)

A,Bの整数が与えられるので、a,bに代入します。

aの長さが「b×2」より大きいかどうかで場合分けします。

大きい場合、aからカーテン2枚分の数字を引きます。

「b×2」より小さい場合、カーテンで完全に隠すことができるため、無条件で0になります。

split()メソッド

split()メソッドは、区切り文字を指定して、文字列を分割します。

区切り文字を指定しない場合、空白、タブ、改行で分割されます。

str.split("区切り文字")

map()関数

map()関数は、イテラブル(リストやタプルなど)の各要素に関数の処理を適用します。

map(関数、イテラブル)

他の解法として、max()を使うものがあります。

提出
a, b = map(int, input().split())

ans = max(a - 2 * b, 0)
print(ans)

完全に隠すことができる場合、「a-2×b」が0以下になるので大きい方を出力すればいいということですね。

max()関数

max()関数は、配列内の最大値を取得します。

max(配列)

【ABC143】解説記事

「AtCoder」解説一覧に戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です