본문 바로가기
TIL/알고리즘

조금 어려운 알고리즘 - 예매 순위

by saramnim 2023. 8. 2.
728x90

예매 순위 알고리즘에 대해 알아보자!

Q. 예매 순위

문제 설명

하루 동안 영화 관람객이 예매한 영화들이 무작위로 섞여서 주어집니다. 이때 가장 많이 예매된 순서대로 영화 제목을 정렬하려고 합니다. 관람객이 예매한 영화의 목록 movie가 매개변수로 주어질 때, 가장 많이 예매된 영화 순으로 영화 제목을 정렬하여 return 하도록 solution 함수를 완성해 주세요. 예매 수가 같은 영화는 사전 순으로 정렬하세요.

제한 사항

예매된 영화 목록의 길이는 1이상 10,000이하 입니다.

영화 제목의 길이는 1자 이상 50자 이하이며공백없이 모두 소문자입니다.

같은 제목의 서로 다른 영화는 없다고 가정합니다.

입출력 예

movie result
["spy","ray","spy","room","once","ray","spy","once"] ["spy","once","ray","room"]

입출력 예 설명

  • 입출력 예 #1
  • 입출력 예 #2

solution.js

const movie = ["spy", "ray", "spy", "room", "once", "ray", "spy", "once"];

function myFunction(movie) {
  const ans = [];
  const list = {};
  movie.forEach((v) => {
    list[v] = (list[v] || 0) + 1;
  });
  let sort_list = [];
  for (let name in list) {
    sort_list.push([name, list[name]]);
  }
  sort_list.sort((a, b) => {
    return b[1] - a[1];
  });
  for (let i = 0; i < sort_list.length; i++) {
    ans.push(sort_list[i][0]);
  }
  return ans;
}
console.log(myFunction(movie));

 

수업 시간에 내주신 문제라 어디 문제인지를 모르겠다..!

728x90
반응형

댓글

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."