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

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

AtCoder ABC 079 A - Good Integer (7Q, 灰色, 100 点)

これは難しい!

問題概要

4 桁の整数  N が与えられる。この整数が「同じ数字が 3 つ以上連続しているか」を判定せよ。

解法

 N を文字列として受け取る方が楽だと思われる。このとき、同じ数字が 3 つ以上連続するのは次の 2 パターンがある。

  • N の 0 文字目と 1 文字目と 2 文字目が等しい
  • N の 1 文字目と 2 文字目と 3 文字目が等しい

なお、すべての文字が等しいパターンもあるが、それは上記のパターンに含まれている。

あとは、これを判定すれば OK。

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

int main() {
    string N;
    cin >> N;
    if (N[0] == N[1] && N[1] == N[2])
        cout << "Yes" << endl;
    else if (N[1] == N[2] && N[2] == N[3])
        cout << "Yes" << endl;
    else
        cout << "No" << endl;
}