File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed
Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments