나의 풀이
def solution(nums):
return min(len(nums)/2, len(set(nums)))
set 을 이용해서 중복된 것들을 지우는 것이 포인트이다.
처음에는 너무 어렵게 생각해서, hash dictionary 를 만들고 난리를 쳤는데....
중복되지 않은 종류의 개수를 모두 세었을 때 전체 포켓몬 숫자 / 2 보다 작다면, 해당 종류의 개수가 정답이 될 것이다.
반면, 중복되지 않은 종류의 개수가 포켓몬 숫자 / 2보다 많다면, 종류가 다르더라도 다 데려갈 수 없으므로 포켓몬 숫자 / 2가 정답이 될 것이다.
'알고리즘 > 해시' 카테고리의 다른 글
[프로그래머스] 베스트앨범 - 파이썬(python) (0) | 2022.05.06 |
---|---|
[프로그래머스] 위장 - 파이썬(python) (0) | 2022.05.05 |
[프로그래머스] 전화번호 목록 - 파이썬(python) (0) | 2022.05.05 |
[프로그래머스] 완주하지 못한 선수 - 파이썬(python) (0) | 2022.05.05 |
댓글