/ ALGORITHM

(프로그래머스 with python) 포켓몬


LEVEL1 포켓몬

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


# 통과 최대 걸린 시간 : 6.58ms
def solution(nums):
    answer = 0
    result = []
    choose = len(nums) // 2
    
    for i in nums:
        if i not in result:
            result.append(i)
    
    while len(result) > choose:
        result.pop()
    return len(result)

solution([3,3,3,2,2,2])


set과 min을 사용하면 더 간단하게 구할 수 있다. 중복을 없앤 값과 nums의 절반값을 비교했을때 각자 다른 포켓몬일 경우 두개의 값은 같다. 만약 중복되는 포켓몬이 있는 경우에는 set으로 중복을 없앤 수가 정답이기 때문에 min함수로 두개의 값을 비교해준다

def solution(nums):
    answer = 0
    choose = len(nums) / 2
    set_list = set(nums)    
    answer = min(choose, len(set_list)) # 각자 다른 포켓몬일 경우 n/2의 포켓몬이 선택될 것
    return answer

solution([3,3,3,2,2,2])


한줄로도 가능하다.. 😅

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

solution([3,3,3,2,2,2])