TIL # 42 [Algorithms] 01. Majority Element

문제


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

Example 1.

Input: [3,2,3]
Output: 3
Example 2.

Input: [2,2,1,1,1,2,2]
Output: 2

해결 방법

  • 반복문을 두 번 돌아 nums[i]와 nums[j]를 비교한 후, nums[i]와 nums[j]가 같으면 count + 1 해준다.
  • 과반수는 nums.length / 2 한 것 보다 커야 하기 때문에 이를 변수로(majority) 지정해주고, count값과 비교한다.
  • count값이 과반수(majority) 보다 크면 nums[i]를 반환한다.

제출코드

function moreThanHalf(nums) {
	let majority = nums.length / 2;
  
	for (let i = 0; i < nums.length; i++) {
    	let count = 0;
    
    	for (let j = 0; j < nums.length; j++) {
      		if (nums[i] === nums[j]) {
        	count += 1
      	}
    }
    
    if (count > majority) {
      return nums[i]
    }
  }
}

좋은 웹페이지 즐겨찾기