본문 바로가기
알고리즘

[프로그래머스/자바스크립트] 해시 - 베스트앨범

2021. 11. 8.

첫번째 풀이 - 실패~~~

function solution(genres, plays) {
  var answer = [];
  var songs = [];

  genres.map((genre, index) => {
    var obj = {};
    obj["index"] = index;
    obj["genre"] = genre;
    obj["plays"] = plays[index];
    songs.push(obj);
  });

  songs.sort((a, b) => {
    return b["plays"] - a["plays"];
  });

  var album = {};
  var countByGenre = songs.reduce((obj, song) => {
    obj[song["genre"]] = (obj[song["genre"]] || 0) + 1;
    if (obj[song["genre"]] <= 2) {
      album[song["genre"]] =
        (album[song["genre"]] ? album[song["genre"]] + "," : "") + song.index;
    }
    return obj;
  }, {});

  var result = [];
  Object.values(album).forEach((indexList) => {
    for (var i = 0; i < indexList.length; i++) {
      if (indexList[i] !== ",") {
        result.push(parseInt(indexList[i]));
      }
    }
  });

  return result;
}

 

댓글