나의 아이디어는 tangerine
에 들어있는 개수가 최소인 원소를 차례차례 제거하는 방식이었다.
from collections import Counter
def solution(k, tangerine):
cnt_list = sorted(Counter(tangerine).items(), key=lambda x:x[1])
sort_t = []
for item in cnt_list:
sort_t.extend([item[0]] * item[1])
return len(set(sort_t[len(tangerine) - k:]))
나의 아이디어와 반대로 tangerine
에 들어있는 개수가 최대인 원소부터 k개 뽑는 방식.
lambda
를 활용해 tangerine
자체를 정렬하기에 나의 sort_t
와 같은 추가 메모리가 불필요하다.
from collections import Counter
def solution(k, tangerine):
counter = Counter(tangerine)
tangerine.sort(key = lambda t: (-counter[t], t))
return len(set(tangerine[:k]))
Counter()
를 정렬하는 방법Counter().most_common()
Counter().items().sort()