💎 배열 요소의 개수를 비교할 때에는 객체를 쓰면 좋다.
배열요소 in 빈 객체
💎 sort 함수
sort 는 배열 메소드이다.
sort 함수의 인자로는 함수를 적어준다. 함수의 return 값이 음수일 때는 배열 요소의 순서를 뒤집어준다. return 값이 양수일 때는 배열 요소를 그대로 리턴한다.
💎 parseInt
배열의 요소가 string 일 때 map 과 parseInt 를 사용해서 배열 요소를 정수로 바꿔줄 수 있다.
nums는 숫자로 이루어진 배열입니다.
가장 자주 등장한 숫자를 k 개수만큼 return해주세요.<case 1>
nums = [1,1,1,2,2,3],
k = 2return [1,2]
<case 2>
nums = [1]
k = 1return [1]
function topK(nums, k) {
let obj = {}
for (let i in nums) {
nums[i] in obj ? obj[nums[i]] += 1 : obj[nums[i]] = 1
}
let sorted = Object.keys(obj).sort(function(a, b) {
return obj[b] - obj[a]
})
return sorted.slice(0, k).map(x => parseInt(x))
}
코드카타를 2주 하면서 한번도 답을 보고 푼 적이 없었다. 그래서 단 하나의 문제도 풀지 못했다. 이번에는 처음으로 구글링을 해서 다른 사람의 풀이법을 참고해서 문제를 풀었다. 다른 사람의 풀이법을 보고 풀면 코드카타를 한 게 아니라는 생각이 들었다. 그래도 오늘 3 개나 새로운 코드를 배웠다. 코드카타 시간만 되면 짝궁에게 미안한 마음이 들고 낭패감이 들었다. 오늘 경험을 통해서 앞으로는 코드카타는 혼자 문제를 풀 수 있어야 한다는 강박을 가지지 않기로 했다. 모르면 답을 보고 새로운 것을 배우자. 대신 기록하자. 아이템 모으듯이 조금씩 문제 접근법을 써보다 보면 혼자서 문제를 풀 수 있는 날이 올 것 같다!