https://school.programmers.co.kr/learn/courses/30/lessons/1845
문제
대충 n개의 포켓몬중 n/2개를 고를때, 가장 많은 종류를 얻을 때의 종류의 수
풀이
HashSet은 contains 함수의 시간복잡도가 O(1)이다. 그러기에 그냥 set에 없으면 넣고 있으면 넣지 않는다.
코드
import java.util.*;
class Solution {
public int solution(int[] nums) {
Arrays.sort(nums);
int n = nums.length;
int answer = 0;
HashSet<Integer> set = new HashSet<>();
for(int i=0; i<n; i++){
if(!set.contains(nums[i])){
set.add(nums[i]);
answer++;
}
}
if(answer > n/2) answer = n/2;
return answer;
}
}