문제
https://school.programmers.co.kr/learn/courses/30/lessons/42579
자바스크립트
function solution(genres, plays) {
// 재생 횟수 저장
let playList = {};
for (let i = 0; i < genres.length; i++) {
if (playList[genres[i]]) {
playList[genres[i]].max += plays[i]
playList[genres[i]].songs.push({ play: plays[i], index: i })
} else {
playList[genres[i]] = {max: plays[i], songs: [{ play: plays[i], index: i }]}
}
}
// 재생 횟수가 많은 장르 순으로 Sorting
const sortedGenres = Object.entries(playList).sort(([, a], [, b]) => b.max - a.max)
// 장르별 재생 횟수가 많은 곡 선택
answer = []
for (const genre of sortedGenres) {
// 장르 안에서 재생 횟수가 많은 곡 순으로 Sorting
const sortedSongs = Object.entries(genre[1].songs).sort(([, a], [, b]) => b.play - a.play)
answer.push(sortedSongs[0][1].index)
if (sortedSongs.length >= 2) { // 곡이 2곡 이상이라면 2번째 곡도 추가하기
answer.push(sortedSongs[1][1].index)
}
}
return answer;
}
'PS (Problem Solving) > Programmers' 카테고리의 다른 글
[프로그래머스] 가장 가까운 같은 글자 - 자바스크립트 (0) | 2024.11.11 |
---|---|
[프로그래머스] 신고 결과 받기 - 자바스크립트 (0) | 2024.11.10 |
[프로그래머스] 오픈 채팅방 - 자바스크립트, 파이썬 (0) | 2024.11.08 |
[프로그래머스] 전화번호 목록 - 자바스크립트 (0) | 2024.11.04 |
[프로그래머스] 기능개발 - 자바스크립트 (0) | 2024.10.26 |