問題概要
問題ページ
-
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()