nums는 숫자로 이루어진 배열입니다.
가장 자주 등장한 숫자를 k 개수만큼 return 해주세요.
정수형 배열, 반환할 개수
가장많이 등장한 숫자를 k개수만큼 반환
def top_k(nums, k):
nums_list=[]
i=0
while i<k:
nums_list.append(max(nums, key=nums.count))
nums = [i for i in nums if i not in nums_list]
i += 1
return nums_list
def top_k(nums, k):
set_nums = set(nums)
result = [(target, nums.count(target)) for target in set_nums]
result.sort(key = lambda x : -x[1])
return [result[i][0] for i in range(k)]
nums = [1,1,1,2,2,3]
k = 2
튜플을 이용한 풀이 방법이다. 사실 튜플을 이용한다는 생각을 전혀 안해봤고, 이용할 방법도 딱히 생각나지 않았는데, 이 풀이를 보면서 알고리즘 풀이과정에 튜플을 이렇게 이용할 수 있구나 감탄했다. 딕셔너리 형태의 자료형을 볼 때 항상 튜플을 염두에 두고 풀이해야겠다.