ちょっと難しい問題。
問題概要
3 文字の 'R' と 'S' のみからなる文字列 が与えられる。
において、'R' が最大で何個連続しているかを答えよ。
解法
ありうる文字列は 通りあることに注意しよう。よって、すべての文字列を調べることができる。そうすると、次のようになる。
3 個連続
"RRR" のみ
2 個連続
"RRS" と "SRR"
1 個連続
"RSS" と "SRS" と "SSR" が考えられる。
これだけかと思いきや、実は "RSR" も「1 個連続である」。これに気づけたかどうか!!!
0 個連続
"SSS" のみ
まとめ
上記に基づいて、if
文を用いて答えればよい。1 個の場合を最後の else
文に押し付けると楽できる。
#include <bits/stdc++.h> using namespace std; int main() { string S; cin >> S; if (S == "RRR") cout << 3 << endl; else if (S == "RRS" || S == "SRR") cout << 2 << endl; else if (S == "SSS") cout << 0 << endl; else cout << 1 << endl; }