[프로그래머스/C++] 폰켓몬

mani·2023년 1월 4일
0

폰켓몬

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;
}
profile
log

0개의 댓글