nums는 숫자로 이루어진 배열입니다.
가장 자주 등장한 숫자를 k 개수만큼 return 해주세요.
import operator
def top_k(nums, k):
nums_dict = {}
max_list = []
for num in nums:
if num not in nums_dict:
nums_dict[num] = 1
else:
nums_dict[num] += 1
sorted_nums_dict= sorted(nums_dict.items(), key=operator.itemgetter(1), reverse=True)
for i in range(0, k):
max_num = sorted_nums_dict[i][0]
max_list.append(max_num)
return max_list
top_k([1,1,1,2,2,2,2,2,3], 2)
힌트는 딕셔너리를 정렬하는 것이다. value를 기준으로 정렬한다면 k번째 숫자까지 가져오면 될 일이다.