숫자로 이루어진 배열인 nums를 인자로 전달합니다. 숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요.
ex) nums = [4,5,6,7,4,4,5];
return 4
function moreThanHalf(nums) {
let answer;
const setNums = new Set(nums);
const numsObject = {};
for(let value of setNums) {
numsObject[value] = 0
}
for(let i=0; i< nums.length; i++) {
numsObject[nums[i]] += 1
}
for(let key in numsObject) {
if(numsObject[key] > nums.length/2) {
answer = Number(key)
}
}
return answer;
}
set 객체
중복을 제거한 값들의 집합
ex) let MySet = new Set();
특정요소 추가:add;
ex) mySet.add(1); // set{1}
특정요소 확인:has;
ex) mySet.has(1) //true;
특정요소 제거:delete;
모든요소 제거:clear;
const setNums = new Set(nums);
const numsObject = {};
for(let value of setNums) {
numsObject[value] = 0
}
for(let i=0; i< nums.length; i++) {
numsObject[nums[i]] += 1
}
3.원래 배열 nums를 돌면서 nums[0]=4, numsObject[4]에 1을 추가한다... 또 돌면서 나오는 숫자마다 1씩 추가한다.......^^ 내 언어의 한계쓰 ^^
for(let key in numsObject) {
if(numsObject[key] > nums.length/2) {
answer = Number(key)
}
}
return answer;
답은..... 4 ^^