자리
, 선택
, 종류
, 중복
같은 개념들이 등장하면서 이건 조합으로 푸는 문제가 아닐까라고 착각하게 되지만 최악의 경우 2만개 중 1만개를 뽑아야하기에 불가능하다. 조금만 생각해보면 굉장히 간단하게 모든 경우가 다음과 같이 나뉨을 알 수 있다.
import java.util.*;
class Solution {
public int solution(int[] nums) {
HashSet<Integer> set = new HashSet<>();
int totalMonster = nums.length;
int myMonster = totalMonster / 2;
int typeCnt = 0;
int answer = 0;
for(int i = 0 ; i < nums.length ; ++i){
set.add(nums[i]);
}
typeCnt = set.size();
answer = typeCnt >= myMonster ? myMonster : typeCnt;
return answer;
}
}
개잘해