#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> nums)
{
int answer = 0;
int N = nums.size() / 2;
printf("%d", N);
sort(nums.begin(), nums.end());
nums.erase(unique(nums.begin(), nums.end()), nums.end());
if(N <= nums.size()){
answer = N;
} else {
answer = nums.size();
}
return answer;
}
최대 고를 수 있는 폰켓몬의 수를 구하는 것이므로 폰켓몬의 종류 수를 먼저 구한다. 때문에 sort, erase, unique를 사용하여 중복되는 폰켓몬을 삭제시켰다. -> 선택할 수 있는 폰켓몬의 종류만 남게 된다.
만약 선택(N/2)이 총 선택할 수 있는 폰켓몬의 수보다 적다면, 선택만큼만 고를 수 있는 것이고 만약 선택이 더 많다면 폰켓몬의 수가 정답이다.
처음 풀어본 프로그래머스 문제. 뭣도 모르고 Level 1 시험 쳐보겠다고 들어갔다가 한 문제만 겨우 맞추고 나왔다...
백준이랑 다른 점은
이 단순한 두가지때문에 엄청 해멨다.