숫자로 이루어진 배열인 nums를 인자로 전달합니다.
숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요.
예를 들어,
nums = [3,2,3]
return 3
nums = [2,2,1,1,1,2,2]
return 2
nums
배열의 길이는 무조건 2
개 이상
const numsObj = {
1: 1,
2: 2,
3: 1,
};
numsObj
객체의 key값에 Object.keys(numsObj) [ '1', '2', '3' ]
const moreThanHalf = (nums) => {
const numsObj = {};
for (let num of nums) {
numsObj[num] == undefined ? numsObj[num] = 1 : numsObj[num]++;
}
const objKey = Object.keys(numsObj)
let result=0;
for (let i=0; i<objKey.length-1; i++) {
numsObj[objKey[i]] < numsObj[objKey[i+1]]
result = [objKey[i+1]]
}
return Number(result);
}
const nums = [1,3,2,2,3,3,3];
console.log(moreThanHalf(nums));
.reduce()
사용 등 다른 방법으로도 푸는데.. 내가 알고있는 함수?메소드?가 적어서 그런것 같다 😥