AtCoder ABC 010 B – 花占い Python解説

2021年11月27日

スポンサーリンク

B – 花占い

なぎさちゃんの花占いは、2つのパターンがあります。 一つは、「好き」「嫌い」を交互に言いながら、花びらを 1 枚ずつ毟っていくパターンです。 もう一つは、「好き」「嫌い」「大好き」の 3つを繰り返しながら、花びらを1枚ずつ毟っていくパターンです。

どちらのパターンにおいても、最後に言った言葉が、花占いの結果となります。

なぎさちゃんの使用人であるあなたは、なぎさちゃんがどちらのパターンで花占いをしたときも、「嫌い」にならないように、 花びらを事前に毟ってあげる必要があります。

庭に咲いている花の数と、その花びらの枚数が与えられるので、花びらを毟る必要のある枚数を出力してください。

AtCoder Beginner Contest 010 花占い

今回は先にPythonコードから

n = int(input())
a = list(map(int, input().split()))

cnt = 0

for i in a:
    if i % 2 == 0:
        if i % 3 == 2:
            cnt += 1
        elif i % 3 == 1:
            cnt += 1
        elif i % 3 == 0:
            cnt += 3
    
    elif i % 3 == 2:
        if i % 2 == 0:
            cnt += 1
        elif i % 2 == 1:
            cnt += 2
            
print(cnt)

見てもらうと分かるように、花びらの枚数の余りで条件分岐しています。花びらの枚数によっては、毟る枚数が最大3枚まであるので注意しましょう。ここではcntで毟った花びらの枚数を管理しています。

分かりづらかったら、好き、嫌いのパターンと好き、嫌い、大好きのパターンを紙に書くと分かりやすいのでおすすめです。