프로그래머스 레벨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씩 해주면 답이 됩니다.