[알고리즘] 과반수 넘은 숫자 반환

lilyoh·2020년 12월 1일
0

문제

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

예를 들어,

nums = [3,2,3]
return 3

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

가정
nums 배열의 길이는 무조건 2개 이상

풀이

let nums = [1, 2, 1, 1, 2]

function moreThanHalf(nums) {
  let res = 0, count = 0;
  
  for(let num of nums) {
    if(count === 0) {
      res = num;
      count++;
    } else {
      (res === num) ? count++ : count--;
    }
  } return res;
}

moreThanHalf(nums) // 1

0개의 댓글