배열 내 최빈도값 구하기

ElenaPark·2021년 10월 19일
0

알고리즘

목록 보기
33/37

문제

Array that contains products' price
Please selected the most commonly used price as the output
-input: [500, 200, 300, 400, 500, 600, 400, 500]
-output: 500

풀이

function getCommonlyUsedPrice(array){  
  const counts = array.reduce((a, b)=>{ 
    a[b] = (a[b] || 0) + 1; 
  // 기존에 key로 저장된게 없다면, 0으로 세팅해주고,
  // 기존에 key로 저장된게 있다면, 기존 value에 1을 더한다.
    return a; 
  }, {});
  
  const keys = Object.keys(counts); 
  let x = keys[0];   
  keys.forEach((val)=>{ 
    if(counts[val] > counts[x]){ 
      x = val; 
    } 
  }); 
  return x; 
}

getCommonlyUsedPrice([500, 200, 300, 400, 500, 600, 400, 500]); // 500 



profile
Front-end 개발자입니다.

0개의 댓글