Skip to content

Commit 1e19a7e

Browse files
authored
[PGS] 42579 베스트앨범 (Lv.3)
1 parent fb92902 commit 1e19a7e

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

박예진/5주차/260129.cpp

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
function solution(genres, plays) {
2+
var answer = [];
3+
4+
// 장르 내에서 노래 재생수 카운트
5+
let m = new Map();
6+
for(let i = 0; i < genres.length; i++){
7+
let key = genres[i];
8+
let value = m.get(key);
9+
m.set(key, (value || 0) + plays[i]);
10+
}
11+
12+
// 장르 내에서 카운트 내림차순
13+
let arr = []; // genre, cnt
14+
for(const [key, value] of m) {
15+
arr.push([key, value]);
16+
}
17+
arr.sort((a, b) => (b[1] - a[1]));
18+
19+
// 가장 많이 재생된 순서대로 장르
20+
for(let i = 0; i < arr.length; i++){
21+
let temp = []; // play, idx
22+
for(let j = 0; j < genres.length; j++){
23+
if (arr[i][0] == genres[j]) {
24+
temp.push([plays[j], j]);
25+
}
26+
}
27+
temp.sort((a, b) => {
28+
if (a[0] != b[0]) return b[0] - a[0]; // 내림차순
29+
else return a[1] - b[1]; // 오름차순
30+
})
31+
32+
// 상위 2개
33+
answer.push(temp[0][1]);
34+
if (temp.length > 1) answer.push(temp[1][1]);
35+
}
36+
37+
return answer;
38+
}

0 commit comments

Comments
 (0)