.

(Lv.1) (포켓몬) (C++)



https://school.programmers.co.kr/learn/courses/30/lessons/1845


unique : 2 2 3 3 3 4 -> 2 3 4 2 3 3 4 -> 반복되는 요소 집합의 끝에 있는 첫 번째 요소의 주소를 반환합니다.

erase : v.erase(v.begin()+s, v.begin()+e) (s, e) 요소를 삭제하는 명령

<从别人的解法来看,unordered_set是用来写一个set的,特点是去重>
unordered_set s(nums.begin(), nums.end());
return min(nums.size() / 2, s.size());

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int solution(vector<int> nums) {
    int size = nums.size() / 2; // 꺼낼 개수 3
    sort(nums.begin(), nums.end());
    nums.erase(unique(nums.begin(), nums.end()), nums.end()); 
    return size < nums.size() ? size : nums.size();
}