
https://school.programmers.co.kr/learn/courses/30/lessons/1845
문제가 조금 길어서 파악하기 어려울 수 있는데 핵심 요지는
nums 배열이 주어진다. 이떄 nums의 길이는 항상 짝수이다.
즉 2로 나누어 떨어지는데,
나는 여기 배열의 길이에서 2를 나눈 값 만큼 번호를 선택할 것이다.
그런데 최대한 다양한 숫자의 번호를 고르고 싶다.
이때 내가 고를 수 있는 가장 번호 종류의 개수를 return 하는 문제이다.
nums[3,1,2,3] 가 주어졌을 때,
나는 len(nums) / 2 인 2개를 고를 것인데, 가질 수 있는 가장 다양한 숫자의 종류의 개수는?
= 2
nums 배열을 set() 에 집어넣어서 중복을 없앤다.
[3,1,2,3] 은
set_nums = set(3,1,2) 가 되겠지?
그러면 len(nums)/2 < len(set_nums) 라면,
정답은 len(nums)/2가 된다.
그렇지 않다면
정답은 len(set_nums) 이 된다.
def solution(nums):
set_nums = set(nums)
answer = 0
if len(nums) // 2 < len(set_nums):
answer = len(nums) // 2
else:
answer = len(set_nums)
return answer