알고리즘/해시

[프로그래머스] 폰켓몬 - 파이썬(python)

아뵹젼 2022. 9. 1.

 

 

 

나의 풀이

def solution(nums):
    return min(len(nums)/2, len(set(nums)))

set 을 이용해서 중복된 것들을 지우는 것이 포인트이다.

처음에는 너무 어렵게 생각해서, hash dictionary 를 만들고 난리를 쳤는데....

 

중복되지 않은 종류의 개수를 모두 세었을 때 전체 포켓몬 숫자 / 2 보다 작다면, 해당 종류의 개수가 정답이 될 것이다.

반면, 중복되지 않은 종류의 개수가 포켓몬 숫자 / 2보다 많다면, 종류가 다르더라도 다 데려갈 수 없으므로 포켓몬 숫자 / 2가 정답이 될 것이다.

댓글