Problem Solving/프로그래머스

[프로그래머스/JavaScript] 베스트앨범

세고래 2022. 12. 14. 19:41

https://school.programmers.co.kr/learn/courses/30/lessons/42579

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


1) 풀이

1. Map 자료형 sort 

mapToArray.sort((a, b) => b[1] - a[1]); // value값 기준 내림차순정렬

mapToArray.sort((a, b) => b[0] - a[0]); // key값 기준 내림차순정렬

mapToArray.sort((a, b) => a[1] - b[1]); // value값 기준 오름차순정렬

mapToArray.sort((a, b) => a[0] - b[0]); // key값 기준 오름차순정렬

2. Map 자료형 set, get 

2) 최종 소스코드
function solution(genres, plays) {
    const answer = [];
    let turn=new Map();
    let mymap=new Map();
    for(let i=0;i<genres.length;i++){
        if(mymap.has(genres[i])){
            mymap.set(genres[i],mymap.get(genres[i]).set(i,plays[i]));
            turn.set(genres[i],turn.get(genres[i])+plays[i]);
 
        }else{
            mymap.set(genres[i],new Map().set(i,plays[i]));
            turn.set(genres[i],plays[i]);
        }
    }
    turn=[...turn].sort((a,b)=>b[1]-a[1]);
    for(let i=0;i<turn.length;i++){
        let arr = mymap.get(turn[i][0]);
        const tmp = [...mymap.get(turn[i][0])].sort((a,b)=>b[1]-a[1]);
        for(let j=0;j<2;j++){
            if(tmp.length>j){
                answer.push(tmp[j][0])
            }
        }
    }
    return answer;
}
3) 참고자료

https://nukw0n-dev.tistory.com/13

 

[Javascript] 자바스크립트 Map 정렬하기

잡소리, 서론 코딩테스트 응시언어가 js로 제한되어있는 곳에 지원했다. 자바스크립트와 친숙했던 나지만 자바스크립트로 알고리즘 문제들을 풀어본 적이 없어서 이것저것 찾아보면서 공부하

nukw0n-dev.tistory.com

728x90