AtCoder Beginner Contest

【pythonでABC175を解説】A - Rainy Season

問題概要

問題ページ

問題文

AtCoder 町の、ある連続した \(3\) 日間の天気の記録があります。天気の記録は長さ \(3\) の文字列 \(S\) で表され、\(i (1 \leq i \leq 3)\) 日目の天気は \(i\) 文字目が S のとき晴れ、R のとき雨でした。

天気が雨である日が連続していた最大の日数を求めてください。

制約

  • \(|S| = 3\)
  • \(S\) の各文字は S または R である

問題の考察

雨の日が連続で何日か答える問題。

for文でRが連続する日数をカウントしても良いが、組合せのパターンが少ないのでACコードではif文だけで分岐するコードにしている。

Rの個数をカウントするだけの解答だとRSRのように、Rが\(2\)つある場合に誤った答えを出力してしまう点。

連続してない場合にはRが\(2\)つ含まれていても答えは\(1\)である。

たびすけ
組合せのパターンが少ない場合には全列挙してif文で解答することもできます!

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    s = str(input().rstrip('\n'))
    if s == "RRR":
        print(3)
    elif s == "RRS" or s == "SRR":
        print(2)
    elif s == "RSS" or s == "SRS" or s == "SSR" or s == "RSR":
        print(1)
    else:
        print(0)


if __name__ == '__main__':
    solve()

プログラミング

-AtCoder Beginner Contest
-