[프로그래머스 level2] 폰켓몬 python

IT공부중·2020년 3월 16일
0

알고리즘

목록 보기
1/49

프로그래머스 레벨2 폰켓몬 python 풀이입니다.
https://programmers.co.kr/learn/courses/30/lessons/1845


def solution(nums):
    answer = 0
    length = len(nums) // 2
    nums.sort()
    last = 0
    
    for value in nums :
        if(value != last and answer < length):
            answer +=1
            last = value
            
    return answer
    

배열의 길이 최대 N/2만큼을 고를 수 있는데 다 다른 것이여야 합니다.
그래서 고를 수 있는 길이를 length로 두고 answer이 length 보다 작을 때만 계산 되게 하고 마지막으로 선택한 숫자와 다를 때에만 answer를 더하게 하였습니다.

위는 예전에 짠 코드였는데 지금 생각해보니 더 줄일 수 있을 거 같아 줄여보았습니다.

def solution(nums):
    answer = 0
    length = len(nums) // 2
    temp = list(set(nums))
    
    for value in temp :
        if(answer < length):
            answer +=1
            
    return answer

set을 이용하여 중복된 수를 없앵고 다시 list로 만들었습니다. 이제 temp 안에는 중복된 수는 없기 때문에 temp 반복문으로 length 보다 작을때 만큼만 answer을 +1씩 해주면 답이 됩니다.

profile
3년차 프론트엔드 개발자 문건우입니다.

0개의 댓글