[Leetcode] Top K Frequent Elements
내가 생각한 로직
- 빈 객체를 만든다.
- nums를 돌며 객체의 key값을 nums의 고유한 값들로, value값을 그 고유한 값의 개수로 만들어준다.
- Object.entries를 이용하여 배열의 형식으로 만들어준 뒤 value값을 기준으로 내림차순 sort 해준다.
- 그리고 다시 mapping하여 key값만 가진 새로운 배열 만들기
- 그리고 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 도 ^^^ 유용한 녀석들 ㅎ
Author And Source
이 문제에 관하여([Leetcode] Top K Frequent Elements), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hoje15v/Leetcode-Top-K-Frequent-Elements저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)