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

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

AtCoder ABC 164 C - gacha (5Q, 灰色, 300 点)

set の練習問題!

問題概要

 N 個の文字列  S_{1}, S_{2}, \dots, S_{N} が与えられる。

重複を除くと何種類の文字列があるでしょうか。

制約

  •  1 \le N \le 10^{5}
  • 文字列長さは 10 以下

考えたこと

重複を除外したいとなったら、集合型(C++ ならば set 型)が使える!

具体的には、set<string> 型の変数を用意して、 N 個の文字列を挿入していこう。最後に、集合のサイズを答えればよい。

コード

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

int main() {
    int N;
    string S;

    cin >> N;
    set<string> se;
    for (int i = 0; i < N; i++) {
        cin >> S;
        se.insert(S);
    }
    cout << se.size() << endl;
}