Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 문자열처리
- node배포
- 코드
- computerscience
- Simulated Annealing
- Search Algorithm
- 철학
- CS
- 파이썬
- node.js
- Hill Climbing
- lightsailor
- 컴퓨터과학
- AWS
- multer-s3
- 컴퓨터공학
- Local Search
- 배포
- 문자열
- typescript
- 알고리즘
Archives
- Today
- Total
지식의모듈화
[Level 3][Javascript]베스트앨범 본문
function solution(genres, plays) {
var answer = [];
function Item(genre, play, id){
this.genre=genre;
this.play=play;
this.id=id
}
let genreSum={};
let itemArr=[];
for (let i =0; i<genres.length;i++){
itemArr.push(new Item(genres[i],plays[i],i));
genreSum[ genres[i]] = (genreSum[genres[i]]||0) +plays[i]
}
let sortable=[];
for (let key in genreSum){
sortable.push([key, genreSum[key]])
}
// console.log(genreSum);
sortable.sort(
function(a,b){return b[1]-a[1]}
);
// console.log(sortable);
for (let value of sortable){
// console.log(value[0]);
let Musics= itemArr.filter(e=> e.genre==value[0]);
// console.log(Musics);
Musics.sort(function(a,b){
if (b.play===a.play) return a.id-b.id;
else{
return b.play-a.play
}
})
answer.push(Musics[0].id);
if(Musics.length > 1) {
answer.push(Musics[1].id);
}
}
return answer;
}
그리 어렵지 않다. 어려운 자료구조 생각하지 말고 머리속에 생각나는 직관적인 모습으로 고치자.
'PS > 프로그래머스' 카테고리의 다른 글
[Level2][Javascript] 가장 큰 수 (0) | 2022.06.23 |
---|---|
[Level1][Javascript] K번째 수 (0) | 2022.06.23 |
[Level3][Javascript]가장 먼 노드 (0) | 2022.06.07 |
[Level2][Javascript]다리를 지나는 트럭 (0) | 2022.06.06 |
[Level2][Javascript] 프린터 (0) | 2022.06.04 |