숫자로 이루어진 배열을 매개변수로 전달받고, 배열 속 과반수의 숫자를 반환하는 함수.
nums = [1, 1, 2, 5, 5, 5] // majorityNum(nums) ==> return 5
const majorityNum = (nums) => {
let numsObj = {};
// nums배열 탐색하며 객체에 처음 등장하는 숫자는 1, 그외는 ++
for (let num of nums) {
numsObj[num] == undefined ? numsObj[num] = 1 : numsObj[num]++;
}
/*
numsObj == {
"1": 2,
"2": 1,
"5": 3
}
*/
}
const majorityNum = (nums) => {
let numsObj = {};
// nums배열 탐색하며 객체에 처음 등장하는 숫자는 1, 그외는 ++
for (let num of nums) {
numsObj[num] == undefined ? numsObj[num] = 1 : numsObj[num]++;
}
// Object.keys(numsObj) == [ "1", "2", "5" ]
// Array의 reduce()를 활용,
// numsObj객체 value의 최대값에 해당하는 key값 구하기 (majority)
let majority = Object.keys(numsObj).reduce((pre, cur) => {
return numsObj[pre] > numsObj[cur] ? pre : cur
})
return Number(majority) // String -> Number
}