def solution(nums):
dic = dict()
# 같은 종류의 폰켓몬 중복 제거
for n in nums:
dic[n] = 1
# (전체 종류 / 2)와 중복 제거된 종류의 수를 비교
# (전체 종류 / 2)이 작거나 같으면 이게 최적이므로 즉시 return
if len(nums) // 2 <= len(dic):
return len(nums) // 2
# 아니면 dic의 수가 최적
return len(dic)
먼저 같은 종류의 폰켓몬은 딕셔너리를 통해 중복을 제거했다
선택 마리 수(len(nums) // 2)가 총 종류 수(중복이 제거된 종류의 수)를 비교 했을 때 전자의 값이 작다면 선택 마리 수가 정답이 된다
그게 아니라면 총 종류 수(중복 제거된 종류의 수)가 정답이 된다
- 우선 총 종류를 하나씩 선택한 뒤에 부족한 마리 수 만큼 선택하게 되는데, 여러마리여도 종류는 1개가 되기 때문에 카운트 할 필요 없다 -> 전체 종류 수가 답이 됨