본문 바로가기

코딩

프로그래머스 - 코딩테스트 고득점 Kit - 해시 - 폰켓몬 (python)

728x90

안녕하세요 여러분들 설날 연휴 잘 보내셨나요? 저는 잘 보냈습니다~ 이제 즐거운 코딩 세계로 떠나볼까요~~~

일단 문제에 대한 자세한 설명은 아래 링크를 참고해주시면 됩니다~

https://school.programmers.co.kr/learn/courses/30/lessons/1845

 

핵심을 말하자면

N/2 를 출력하냐, 종류의 개수를 출력하냐 둘 중에 하나를 하면 되는데

만약 N/2종류의 개수보다 작다면 N/2 뽑으면 되고 아니라면 종류의 개수를 뽑으면 된다.

 

해당 내용을 아래 코드로 작성한 것이다.

 

해시 개념인 set을 이용하여 작성해보았다.

def solution(nums):
    answer = 0
    s = set(nums) # set() 집합의 기능, set 안에는 중복된 값이 없음
    n_2 = len(nums) / 2
    if n_2 >= len(s):
        answer = len(s) # len은 집합의 크기
    else:
        answer = n_2
    
    return answer