#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int solution(vector<int> nums)
{
int answer = 0;
int get_num = nums.size() / 2;
sort(nums.begin(), nums.end());
nums.erase(unique(nums.begin(), nums.end()), nums.end());
int res_num = nums.size();
if (get_num < res_num)
answer = get_num;
else
answer = res_num;
return answer;
}
다른 풀이
#include <bits/stdc++.h>
using namespace std;
int solution(vector<int> nums) {
unordered_set<int> s(nums.begin(), nums.end());
return min(nums.size() / 2, s.size());
}
#include <vector>
#include <unordered_map>
using namespace std;
int solution(vector<int> nums)
{
unordered_map<int, int> hash;
for (auto num: nums) {
hash[num] += 1;
}
return min(hash.size(), nums.size() / 2);
}