nums
는 숫자로 이루어진 배열입니다. 가장 자주 등장한 숫자를k
개수만큼 return 해주세요.
요구사항 : 각 리스트 요소의 갯수를 세고, 어떤 게 더 많은지를 알 수 있도록 해라.
인풋 : 많은 숫자로 이루어진 리스트
아웃풋 : k만큼의 길이를 가진 리스트
k를 카운트로 써서, 갯수가 많은 순서대로 리스트에 넣으면 되겠다.
딕셔너리에 숫자와 갯수를 key value로 넣은 다음에,
value끼리 비교를 하는거야. max함수를 쓰든지 해서.
가장 높은게 있을 때 기존의 딕셔너리에서 그 값을 없애고, 리스트에 차곡차곡 넣는다.
def top_k(nums, k):
my_dict = {}
for i in nums:
my_dict[i] = nums.count(i)
result = max(my_dict, key=my_dict.get)
return result
def top_k(nums, k):
my_dict = {}
for i in set(nums):
my_dict[i] = nums.count(i)
sorted_dict = sorted(my_dict.items(), key=lambda item: item[1], reverse=True)
my_list = []
for i in range(0, k):
my_list.append(sorted_dict[i][0])
return my_list