배열 내 숫자 중 과반수 넘은 숫자 반환하기, JavaScript

라용·2022년 9월 6일
0

위코드 - 스터디로그

목록 보기
34/100
post-custom-banner

위코드 코드카타를 풀며 정리한 내용입니다.

문제

숫자로 이루어진 배열 nums 를 인자로 전달하면, 숫자중에서 과반수가 넘은 숫자를 반환하세요.

//입력 
nums = [2, 2, 1, 1, 1, 2, 2]
//출력
2

해설

배열내 숫자를 하나씩 비교해야 하므로 for 반복문을 두번 돌리면서 비교합니다. 숫자 중 과반수가 넘으면 되므로 이 숫자가 전체 배열의 길이의 절반보다 높은 값을 반환합니다.

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

코드 별로 설명을 적어보면,

fuction moreThanHalf(nums) {
	for (let i = 0; i < nums.length; i++) { // 첫번째 반복문 실행
		let sum = 0; // 같은 값의 갯수를 파악할 변수 선언, 할당
		for (let j = 0; j < nums.length; j++) { // 두번째 반복문 실행
			if (nums[i] === nums[j]) { // 숫자 비교하다가 같은 값이 나오면
				sum += 1; // 변수에 +1
			}
		}
		if (sum > nums.length/2) { // 같은 값의 갯수가 배열의 과반을 넘으면
			return nums[i]; // 해당 요소 반환
		}
	}
}
profile
Today I Learned
post-custom-banner

0개의 댓글