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

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

AtCoder ABC 131 A - Security (8Q, 灰色, 100 点)

隣接要素を見る問題。それは何気に結構難しいことだとも思う。

問題概要

4 文字の文字列が与えられます。

隣り合う文字が等しい箇所が存在するならば "Bad"、そうでなければ "Good" と答えてください。

解法

次のいずれかを満たせば "Bad" と答えれば OK

  • S[0] == S[1]
  • S[1] == S[2]
  • S[2] == S[3]

論理演算子「||」を用いて判定できる ("Good" 側を判定するなら「&&」)

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

int main() {
    string S;
    cin >> S;
    if (S[0] == S[1] || S[1] == S[2] || S[2] == S[3])
        cout << "Bad" << endl;
    else
        cout << "Good" << endl;
}