思考する三角形▽

プログラミング初心者によるAtCoder解答解説

B - Kagami Mochi

コメント歓迎です。

今回はsetを使って解きました。


方針

今回の問題で初めてsetを使いました。


setに追加した要素は自動でソートされ追加されます。


要素に重複があった場合は、追加されません。


この問題では入力をsetに追加していき、setに格納された要素数を数えることで解答できます。


処理速度についてはvector + sortアルゴリズムの方が高速なようです。


コード(AC)

#include <iostream>
#include <set>
using namespace std;

int main() {
  int N;
  int d[100];
  // 入力を配列に追加
  cin >> N;
  for (int i = 0; i < N; i++) {
    cin >> d[i];
  }
  // setに配列の要素を追加
  set<int> ans;
  for (int i = 0; i < N; i++) {
    ans.insert(d[i]);
  }
  // 出力
  cout << ans.size() << endl;
  return 0;
}