[wecode/codekata]Day 9

Jimin_Note·2022년 6월 17일
0

⌨️wecode/code_kata

목록 보기
9/13
post-thumbnail

📍문제

nums는 숫자로 이루어진 배열입니다.
가장 자주 등장한 숫자를 k 개수만큼 return 해주세요.

numskreturn
[1,1,1,2,2,3]2[1,2]
[1]1[1]
[2,2,3,3,3,4,4,4,4,5]1[4]

📍내 코드

def top_k(nums, k):
   a={}
   for i in nums:
    if i not in a:
      a[i] = 1
    else:
      a[i]=a[i]+1  
  
   print(a)
   
   return [sorted(a.items(),reverse=True,key=lambda x:x[1])[i][0] for i in range(k)]

📍내 코드수정

def top_k(nums, k):
   a={i : nums.count(i) for i in set(nums)} #{set(nums):nums.count } 
   
   return [sorted(a.items(),reverse=True,key=lambda x:x[1])[i][0] for i in range(k)]

🌱[sorted(a.items(),reverse=True,key=lambda x:x[1])[i][0] for i in range(k)]

  • sorted 정렬하다(오름차순)
  • a.items() a의 key,value 를
  • reverse = True 내림차순으로 정렬
  • key=lambda x:x[1] a의 value를 기준으로 정렬
#ex
a=[(1, 2), (5, 1), (0, 1), (5, 2), (3, 0)]
sorted(a, key = lambda x : x[0]) #key를 기준으로 정렬
#[(0, 1), (1, 2), (3, 0), (5, 1), (5, 2)]
sorted(a, key = lambda x : x[1]) #value를 기준으로 정렬
#[(3, 0), (5, 1), (0, 1), (1, 2), (5, 2)]
profile
Hello. I'm jimin:)

0개의 댓글