duck blog
Published on

프로그래머스 베스트앨범 (hash)

Authors
  • avatar
    Name
    Deokgoo Kim
    Twitter

문제 풀이

hash 분류의 문제입니다. hash같은 정렬문제입니다
문제의 난이도는 낮다고 생각합니다.


문제 링크

function solution(genres, plays) {
  const answer = [];
  const summary = {};
  // hash테이블 만들기
  for(let i=0;i<genres.length;i++) {
    if(!summary[genres[i]]) summary[genres[i]] = [];
    summary[genres[i]].push({
      play: plays[i],
      num: i
    })
  }
  // 장르 순서 찾기
  const sortedGenres = Object.keys(summary).sort((a, b) => {
    const sumA = summary[a].reduce((x, y) => x + y.play, 0);
    const sumB = summary[b].reduce((x, y) => x + y.play, 0);
    return sumA>sumB? -1:1;
  });
  // play로 정렬시키기
  sortedGenres.forEach(x => {
    summary[x] = summary[x].sort((a,b) => {
      if(a.play === b.play) return 1;
      return a.play>b.play?-1:1;
    });
  });
  // 각 장르별 두개씩 뽑아내기
  sortedGenres.forEach(x => {
    answer.push(summary[x][0].num);
    if(summary[x].length >= 2) answer.push(summary[x][1].num);
  })

  return answer;
}

새 글 알림 받기

실무에서 바로 써먹을 수 있는 개발 팁과 경험담을 받아보세요

#실무 개발 경험담#최신 기술 트렌드#성능 최적화 노하우#개발 팁과 인사이트

개인정보는 뉴스레터 발송 목적으로만 사용되며, 언제든 구독을 해지할 수 있습니다.