N/2개의 선택할 수 있는 방법 중 최대로 다양한 폰켓몬을 선택해야했기 때문에 중복된 데이터를 없애는 것이 우선이었다. 그래서 집합을 사용했다. 하지만 폰켓몬의 다양성 수가 N/2를 초과하는 경우가 있으므로 if - else로 경우를 나누었다.
1차
def solution(nums):
hashtable = []
for i in nums:
if i not in hashtable:
hashtable.append(i)
result = len(hashtable)
if result > len(nums)/2:
return len(nums)/2
else:
return result
2차
def solution(nums):
result = len(set(nums)) // 폰켓몬의 다양성 수
if result > len(nums)/2: // 폰켓몬의 다양성 수가 N/2 보다 큰 경우 N/2 출력
return len(nums)/2
else:
return result
1차로 집합을 사용해야한다는 아이디어를 떠올리지 못해서 배열에 중복 데이터를 for문으로 배제하며 추가해주었다. 하지만 나중에 집합을 사용하면 데이터의 중복을 쉽게 없앨 수 있음을 깨닫고 코드를 수정하였다.