728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

Version 5.0

 

import itertools
from collections import Counter

def solution(nums):
    a = len(nums)//2
    print(Counter(nums))
    b = len(Counter(nums))
    if a < b:
        answer = a
    else:
        answer = b
    return answer

 

Version 4.0

from collections import Counter

def solution(nums):
    answer = 0
    b = len(Counter(nums).keys())
    print(b)
    maxe = len(nums)//2
    answer = maxe
    if b<= maxe:
        answer = b
        
    
    return answer

Version 3.0

import itertools
import collections

def solution(nums):
    max = len(nums)/2
    nums = collections.Counter(nums)
    a = len(list(nums.keys()))
    if max <= a:
        answer = max
    else:
        answer = a
    
    return answer

==> MAX값보다 클경우 길이가 짧은 걸 우선으로 answer 에 저장해야한다

 

Ver 2.0

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

ls 리스트의 2로 나눈값이냐 , set으로 중복값 제거하고 한 거의 길이랑의 min 값 출력

 

Ver 1.0

import sys
import collections

def solution(nums):
    b = len(nums)
    hashes = collections.Counter(nums)
    answer2 = []
    answer = len(hashes.keys())
    if answer > b//2:
        answer = b//2
    return answer

nums = list(map(int, sys.stdin.readline().split()))

print(solution(nums))

hashes.keys() 를 할경우 key값들을 리스트로 뽑아낸다.

728x90
반응형

+ Recent posts