[TIL] # 34 알고리즘 |Code Kata - 05 |

DamHo Bae·2021년 3월 10일
0

Code Kata 알고리즘

목록 보기
5/5
post-thumbnail

문제

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

예를 들어,

nums = [3,2,3]
return 3

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

가정

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


My code

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

해설:

먼저 우리는 과반수를 찾아야한다.

  • for 중첩으로 nums[i]값과 nums[j]값을 비교 한 후
    같으면 result에 1을 더 해준다.
  • 과반수는 nums.length /2 보다 커야 하기 때문에
    result값과 비교 했다.
  • 과반수가(majority) 더 크면 nums[i]를 반환 !!

미션성공!

profile
Frontend Developer

0개의 댓글