https://programmers.co.kr/learn/courses/30/lessons/1845

int solution(vector<int> nums)
{
    int answer = nums.size() * 0.5;
    std::unordered_map<int, int> umap;
    for(int i = 0; i < nums.size(); i++){
        umap[nums[i]] = 1;
    }
    if(umap.size() >= answer) return answer;
    return umap.size();
}

다른 방법은 vector의 unique..