けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

JOIG 2024 A - 三連続 (難易度 2)

for 文の練習問題!

問題概要

o と x からなる長さ  N の文字列  S が与えられる。

 S の中に o が 3 つ連続している箇所があれば "Yes" を出力し、そうでなければ "No" を出力せよ。

制約

  •  1 \le N \le 10^{5}

考えたこと

for 文を用いて判定しよう。具体的には、各 i について

  • S[i] == 'o'
  • S[i+1] == 'o'
  • S[i+2] == 'o'

が成り立つかどうかを判定していって、一箇所でも成り立てば "Yes" を出力すればよい。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    int N;
    string S;
    cin >> N >> S;
    bool res = false;
    for (int i = 0; i + 2 < N; ++i) {
        if (S[i] == 'o' && S[i+1] == 'o' && S[i+2] == 'o') res = true;
    }
    cout << (res ? "Yes" : "No") << endl;
}