이 문제는 C++의 container set을 이용하면 간단하고 쉽게 해결할 수 있다.
우선 set의 특징은 아래와 같다.
1. 중복 허용 X
2. 자동 오름차순 정렬
set의 특징을 활용하여 이 문제를 풀이하면 아래의 코드와 같다.
#include <vector>
#include <set>
using namespace std;
int solution(vector<int> nums)
{
int ans;
set<int> s;
for(int i=0; i<nums.size(); i++){
s.insert(nums[i]);
}
if(s.size() < nums.size()/2){
ans = s.size();
}
else{
ans = nums.size()/2;
}
return ans;
}