min, max 활용
_unordered_map을 사용하여
vector의 원소를 key, 해당 원소의 개수를 value로 설정
nums의 원소의 크기/2 < key의 개수 => N/2가 answer 아니면 key의 개수가 answer
#include <vector>
#include <unordered_set>
using namespace std;
int solution(vector<int> nums)
{
unordered_set<int> uset(nums.begin(), nums.end());
return min(uset.size(), nums.size()/2);
}
#include <vector>
#include <unordered_map>
using namespace std;
int solution(vector<int> nums)
{
unordered_map<int, int> umap;
for(auto ele:nums){
umap[ele]++;
}
return min(umap.size(), nums.size()/2);
}
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
unordered_map<int, int> umap;
int solution(vector<int> nums)
{
int answer = 0;
for (auto num : nums) {
if (umap.end() == umap.find(num))
umap.insert(make_pair(num, 1));
else
umap[num]++;
}
int nSize = (int)nums.size() / 2;
int keySize = (int)umap.size();
if (nSize <= keySize)
answer = nSize;
else
answer = keySize;
return answer;
}
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
unordered_map<int, int> umap;
int solution(vector<int> nums)
{
int answer = 0;
for (auto num : nums) {
if (umap.end() == umap.find(num))
umap.insert(make_pair(num, 1));
else
umap[num]++;
}
int nSize = (int)nums.size() / 2;
cout << "nSize : " << nSize << "\n";
int keySize = (int)umap.size();
cout << "keySize : " << keySize << "\n";
if (nSize <= keySize)
answer = nSize;
else
answer = keySize;
return answer;
}
int main(void)
{
vector<int> nums = { 3,3,3,2,2,2 };
cout << solution(nums);
return 0;
}