はまやんはまやんはまやん

hamayanhamayan's blog

複雑な文字列 (Complex String) [JOI 2021/2022 一次予選 (第1回) 過去問 C]

https://atcoder.jp/contests/joi2022yo1a/tasks/joi2022_yo1a_c

解説

https://atcoder.jp/contests/joi2022yo1a/submissions/26485238

文字種を数える問題なので、C++であればsetを使うのがオススメ。
setは同じ要素が入った場合でも1つにまとめてくれるので、全要素を入れても最終的には重複を除いた状態で格納してくれる。
なので、すべての文字をsetに入れて、中身の個数を持ってくると種類数が得られる。
これを3以上とそれ以外で答え分けをすればACできる。

int N;
string S;
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N >> S;
    set<char> chars;
    for (auto c : S)
    {
        chars.insert(c);
    }

    if (3 <= chars.size()) cout << "Yes" << endl;
    else cout << "No" << endl;
}