코딩테스트/프로그래머스
[레벨1] 폰켓몬
marmelo12
2021. 10. 24. 13:06
반응형
#include <vector>
#include <memory.h>
using namespace std;
int arr[200001];
int solution(vector<int> nums)
{
int answer = 0;
int len = nums.size();
for(int i = 0; i < len; ++i)
{
if(arr[nums[i]] == 1)
continue;
arr[nums[i]] = 1;
++answer;
}
if(answer > (len / 2))
return answer = (len / 2);
return answer;
}
set을 이용하여 (이진탐색트리 - 중복키 허용x) 푸는 방법도 괜찮을듯 하다.
#include <vector>
#include <set>
using namespace std;
int solution(vector<int> nums)
{
int answer = 0;
set<int> a;
int len = nums.size();
for(int i = 0; i < len; ++i)
a.insert(nums[i]);
answer = a.size();
if(a.size() > (len / 2))
return answer = (len / 2);
return answer;
}
반응형