ebisukeプログラミング初心者脱出黙示録

30歳を過ぎてから始めたプログラミングと競プロの記録。Pythonで取り組んでいます。Arduinoで電子工作も

AtCoder-ABC209 A - Counting / B - Can you buy them all?【Python解答例】

f:id:ebisuke33:20210710223444p:plain


AtCoder Beginner Contest209のA とB問題についてPythonの解答例を記事にしていきます。
AtCoder Beginner Contest 209 - AtCoder



AtCoder Beginner Contest209 A - Counting

A - Counting

問題文

A 以上かつ B 以下の整数はいくつありますか?

制約

・1≤A≤100
・1≤B≤100
・A,B は整数である。

解答例

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

ans = b - a + 1

if ans > 0:
    print(ans)
else:
    print(0)

解説

問題文のようにA以上B以下の整数の数を求める問題です。

A <= B のとき B - A + 1で答えが求まりますが、A > Bのとき0ではなくマイナスの値になる場合があり注意が必要です。

B - A + 1がマイナスのときは0を出力するように場合分けを行えばOKでした。



AtCoder Beginner Contest209 B - Can you buy them all?

B - Can you buy them all?

問題文

高橋商店では N 個の商品が売られています。i(1≤i≤N) 番目の商品の定価は Ai 円です。
今日はセールが行われており、偶数番目の商品は定価の 1 円引きの値段で買うことができます。奇数番目の商品は定価で売られています。
あなたの所持金は X 円です。これら N 個の商品を全て買うことができますか?

制約

・1≤N≤100
・1≤X≤10000
・1≤Ai≤100
・入力は全て整数

解答例

n, x = map(int,input().split())

A = list(map(int, input().split()))

total = 0
for i in range(n):
    if (i + 1) % 2 == 1:
        total += A[i]
    else:
        total += (A[i] - 1)

if total <= x:
    print("Yes")
else:
    print("No")

解説

割引された商品価格を考慮して、商品すべてをX円で購入できるか答える問題です。

制約が厳しくないので単純にすべての商品の価格を足し合わせていきました。

ループで商品の価格をtotal変数に足し合わせます。
このとき、商品が偶数番目のときは定価から1円引き⁉なので1円引いた価格を足し合わせました。

このループを抜けた後でtotalが所持金のXより大きいか小さいかを判別して解答すればACでした!



ABC209の関連記事はこちら
ebisuke33.hatenablog.com
ebisuke33.hatenablog.com