Algorithm | Code Kata #7

Wook·2021년 12월 7일
0

Algorithm | Code Kata

목록 보기
7/21

숫자로 이루어진 배열에서 과반수가 넘는 숫자를 반환하는 문제이다. 객체를 통해 숫자마다의 keyvalue를 이루어 준 후 그 중 가장 빈도수가 높은 key 값을 리턴해주기로 했다.


📲 My Code

function moreThanHalf(nums) {
  // 여기에 코드를 작성해주세요.

  let newDic={} // 숫자 : 빈도수 를 객체에 담아줌.
  let max=0; // 빈도수 비교를 위한 상수
  let majority; // 최종 리턴값

  for (let i in nums){ // 객체 할당 과정
    if (newDic[nums[i]]===undefined){
      newDic[nums[i]]=1
    }
    else{
      newDic[nums[i]]+=1
    }
  }
  
  for (let key in newDic){ // key value 값에 따라 value가 최대인 key값을 저장.
    if (max<newDic[key]){
      max=newDic[key]
      majority=key
    }
  }
  return Number(majority) // 문자열을 숫자형으로 변환후 리턴
}

느낀 점

객체의 성질을 이용하여 문제를 풀었다. 문제를 풀 때 직관적으로 논리의 흐름을 따라 푸는 편인데 다른 풀이들을 보면서 다른 방법들도 내 방법으로 흡수하는 습관을 들이도록 노력해야겠다. 변하고 또 변화해서 성장하는 게 개발자의 덕목이라고 들었기 때문이다.

profile
지속적으로 성장하고 발전하는 진취적인 태도를 가진 개발자의 삶을 추구합니다.

0개의 댓글