Code Kata( 7 )

simoniful·2021년 6월 21일
0

CodeKata

목록 보기
7/7
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개 이상


답안

function moreThanHalf(nums) {
  let result;
  
  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];
    }
  }
}

👉🏻 리스트의 요소를 오브젝트의 key:value를 사용하여 검색
👉🏻 재구성 후 순회하며 조건에 따라 분류하여 합산 실행


오답노트

function 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];
        }
      } 
    }
  }
}

👉🏻 1. 답안과 거의 완벽하게 일치했다
👉🏻 2. 순회하면서 필요한 요소를 카운팅하는 방식을 알고 정렬법에 대한 정리가 필요한 듯 하다.
👉🏻 3. 어서 자료구조와 알고리즘은 한 번 정리하자!

profile
소신있게 정진합니다.

0개의 댓글