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

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

AtCoder-ABC204 A - Rock-paper-scissors / B - Nuts【Python解答例】

f:id:ebisuke33:20210608221610p:plain

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



AtCoder Beginner Contest204 A - Rock-paper-scissors

A - Rock-paper-scissors

問題文

サーバルフェネック、アライグマの 3 人がじゃんけんをして、あいこになりました。

フェネックが出した手を表す文字 x とアライグマが出した手を表す文字 y が与えられます。それぞれ、0 はグー、1 はチョキを、2 はパーを表します。

サーバルが出した手を表す文字を出力してください。なお、答えは一意に定まります。

制約

・x, y は 0, 1, 2 のいずれか

解答例

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

if x == y:
    print(x)
else:
    print(3 - x - y)

解説

3人でじゃんけんしたとき、2人の手が与えられるのであいこにするために何を出したらよいか答える問題です。

2つの場合分けを行いました。
ひとつ目は2人の手が同じ場合で、このときは2人と同じ手を出す必要があり解答例ではxを出力しています。

ふたつ目は2人の手が違う場合で、2人と違う手を出す必要があります。
グーチョキパーは0,1,2で表されているので、3からxとyを引いた値が出すべき手です。

この場合分けにそって、値を出力すればOKです。


AtCoder Beginner Contest204 B - Nuts

B - Nuts

問題文

N 本の木があり、 i 番目の木には Ai 個の木の実が実っています。

シマリスは、次のルールで全ての木から木の実を収穫します。

・実っている木の実が 10 個以下の木からは木の実を収穫しない
・実っている木の実が 10 個より多い木からは、10 個を残して残りの全てを収穫する

シマリスが収穫する木の実の個数の合計を求めてください。

制約

・1≤N≤1000
・0≤Ai≤1000
・入力に含まれる値は全て整数である

解答例

n = int(input())

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

ans = 0
for i in range(len(A)):
    if A[i] > 10:
        ans += A[i] - 10

print(ans)

解説

シマリスが問題文のルールに従って木の実を収穫するとき、何個収穫できるかを答える問題です。

木は最大で1000本までなので、すべての木に対して何個収穫できるか確認していきました。

for文ですべての木を調べて、木の実が10個以上なら収穫します。
収穫するのはA[i]から10を引いた値になり、ans変数に足していきました。

ループが抜けた後でans変数を出力すればACです!




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