선택할 수 있는 폰켓몬(포켓몬이 아니라 폰켓몬이다. 아마, 저작권때문에 그런 듯ㅋㅋㅋㅋㅋ)의 범위에서 얼마나 많은 종류의 폰켓몬을 선택하느냐의 문제다.
제일 먼저 선택할 수 있는 폰켓몬을 쉽게 알기 위해 정렬을 해서 중복되는 수를 삭제했다. 다음 선택 가능 수가 폰켓몬의 수보다 더 크면 폰켓몬의 수를 반환하고 더 작으면 선택 가능 수를 반환했다.
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> nums)
{
int answer = 0;
vector<int> v = nums;
sort(v.begin(), v.end());
v.erase(unique(v.begin(), v.end()), v.end());
if(nums.size()/2 >= v.size()){
answer = v.size();
}else if(nums.size()/2 < v.size()){
answer = nums.size()/2;
}
return answer;
}