Code Kata 란, 2인 1조의 구성으로 서로 협력하여 하루에 한 문제씩 해결하는 과제입니다.
nums는 숫자로 이루어진 배열입니다.
가장 자주 등장한 숫자를 k 개수만큼 return 해주세요.
nums = [1,1,1,2,2,3], k = 2
return [1,2]
nums = [1] k = 1
return [1]
def top_k(nums, k):
# 여기에 코드를 입력해주세요
num = {}
result = []
for i in nums:
try: num[i] +=1 # 딕셔너리에 해당 key가 있으면(오류가 없으면) 갯수 +1
except: num[i] =1 # 없으면 갯수가 1이라고 저장
for i in range(k):
for key, value in num.items():
if value == sorted(num.values(), reverse=True)[i]:
result.append(key)
return result
def top_k(nums, k):
# 여기에 코드를 입력해주세요
num_set = set(nums)
num_set = list(num_set)
num_count = []
for i in num_set:
num_count.append(nums.count(i))
num_count.sort()
count = []
if k == 1:
res = []
a = num_count.pop()
for i in nums:
if nums.count(i) == a:
res.append(i)
return res
else:
res = []
num_count.reverse
for i in num_count[:k]:
for ii in nums:
if i == nums.count(ii):
res.append(i)
res = set(res)
res = list(res)
return res
def top_k(nums, k):
new_dict = {}
result = []
for num in nums:
if num in new_dict :
new_dict[num] += 1
else:
new_dict[num] = 1
value_list = sorted(new_dict.values(), reverse=True)[:k]
for i in new_dict :
if new_dict[i] in value_list :
result.append(i)
def top_k(nums, k):
new_dict = { nums.count(i):i for i in set(nums)}
value_list = sorted(new_dict.keys(), reverse=True)[:k]
return [new_dict[i] for i in value_list]