code kata

Pang·2021년 10월 3일
0
post-thumbnail

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):
  a = {}
  b = []
  for i in nums:
    try:
      a[i] += 1
    except:
      a[i] = 1
  for j in range(k):
    b.append(max(a, key=a.get))
    a[max(a, key=a.get)] = 0
  return b

람다를 이용하여 하는 사람들도 있었지만
풀 당시에는 몰랐던 지식이었으므로 후에 공부하였다!

코드 설명

우선 a 딕셔너리에 숫자와 그 숫자가 몇 번 남았는지 담았고.

k만큼 반복하여 가장큰 벨류를 가진 key값을 배열에 넣은다음 리턴해주었다!

profile
팡 화이토

0개의 댓글