[Leetcode] Top K Frequent Elements

Hyodduru ·2022년 3월 24일
2

Algorithm

목록 보기
24/25
post-thumbnail

내가 생각한 로직

  1. 빈 객체를 만든다.
  2. nums를 돌며 객체의 key값을 nums의 고유한 값들로, value값을 그 고유한 값의 개수로 만들어준다.
  3. Object.entries를 이용하여 배열의 형식으로 만들어준 뒤 value값을 기준으로 내림차순 sort 해준다.
  4. 그리고 다시 mapping하여 key값만 가진 새로운 배열 만들기
  5. 그리고 k개만큼 return 해주기
function topK(nums, k) {
let obj = {};
  for(let x of nums){
   obj[x]= obj[x] + 1 || 1 
  }

 return Object.entries(obj).sort((a,b) => b[1] - a[1]).map(a => parseInt(a[0])).slice(0, k)

}

만약 map일경우

   for(n of nums){
     map.set(n, map.get(n)+1 || 1 )
   }
  

마무리

새롭게 다시 배운 Object.entries!

자주 써먹어야지,, + Object.keys, Object.values 도 ^^^ 유용한 녀석들 ㅎ

profile
꾸준히 성장하기🦋 https://hyodduru.tistory.com/ 로 블로그 옮겼습니다

2개의 댓글

comment-user-thumbnail
2022년 3월 25일

이런식으로도 풀 수 있다니 깨달음을 얻고 갑니다ㅠ..

1개의 답글