문제
접근
문제가 복잡해보이지만, 중복없이 최대한 많은 수를 선택하는 문제이다.
코드
- 파이썬 코드
1
2
3
4
5
def solution(nums):
n = len(nums) // 2
num = set(nums)
answer = min(n, len(num))
return answer
- C++ 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
int solution(vector<int> nums)
{
set<int> s;
for(int i = 0; i<nums.size();i++){
s.insert(nums[i]);
}
int answer = min(nums.size()/2, s.size());
return answer;
}