과반수가 넘은 숫자를 반환하기.

군밤먹으면서코딩·2021년 6월 29일
0

알고리즘

목록 보기
12/14
post-thumbnail

문제

숫자로 이루어진 배열인 nums를 인자로 전달합니다. 숫자중에서 과반수(majority, more than a half)가 넘은 숫자를 반환해주세요.

nums = [3,2,3]
return 3

nums = [2,2,1,1,1,2,2]
return 2

나의 답

function moreThanHalf(nums) {
  // 여기에 코드를 작성해주세요.
  let aSet = new Set(nums);
  let result = [];
  for(let n of aSet){
    const bFilter = nums.filter(e => e===n);
    result.push(bFilter);
  }
  
  let answer = 0;
  let a = 0;
  let b;
 for(let i =0;i<result.length;i++){
   if(answer < result[i].length){
     answer = result[i].length;
     b = i;
   }

   
 }

  return result[b][0];

}

짝궁의 답

function moreThanHalf(nums) {
  for(let i = 0; i < nums.length; i++) {
    if(nums.filter(majority => majority === nums[i]).length > (nums.length/2)){
      return nums[i]
    }
  }
}
  • 과반수라는 문제 조건을 따르지 않고 가장 많은 수의 length를 구하는데 w집중해 코드가 많이 길어져버렸다 ㅎㅎ; 문제를 잘 읽자!!

0개의 댓글