ZeroJudge j224. 寶可夢圖鑑

解題思路

文文有可能重複抓到一樣的神奇寶貝,我們必須計算文文抓到的種類數量,而不是抓到的神奇寶貝數量。因此,若有重複的編號不必計算,此題適合用 set!!利用 set 的不重複特性,就可以輕易的將重複的神奇寶貝編號排除。

set 特性

C++

  • 容器內元素不重複
  • 會自動排序
  • 容器內元素的值不可修改
  • 可新增或移除元素

Python

  • 容器內元素不重複
  • 容器內元素無順序、無索引
  • 容器內元素的值不可修改
  • 可新增或移除元素

程式碼

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// j224 AC

#include <bits/stdc++.h>

using namespace std;

int main(){
int N;
cin >> N;
set<int> pokemon; // 建立一個 set 來存放寶可夢的編號
for (int i = 0; i < N; i++){
int x;
cin >> x;
pokemon.insert(x); // 將寶可夢的編號加入 set,因 set 元素不重複特性不會加入重複的編號
}
cout << pokemon.size() << "\n"; // 輸出 set 的大小,即為不重複的寶可夢數量
return 0;
}

C++ AC

Python 一行解

1
input(); print(len(set(input().split())))

Python AC