[Algorithm - Programmers] 베스트앨범

nunu·2023년 12월 17일
0

Algorithm

목록 보기
117/142

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

제출 코드

import java.util.*;
class Solution {
    public int[] solution(String[] genres, int[] plays) {
        HashMap<String, Integer> hm = new HashMap<>();
        for (int i = 0; i < plays.length; i++) {
            hm.put(genres[i], hm.getOrDefault(genres[i], 0) + plays[i]);
        }
        ArrayList<String> gList = new ArrayList<>();
        for (String str : hm.keySet()) {
            gList.add(str);
        }
        gList.sort(((o1, o2) -> hm.get(o2) - hm.get(o1)));

        ArrayList<Integer> answer = new ArrayList<>();
        for (String str : gList) {
            ArrayList<Song> sList = new ArrayList<>();
            for (int i = 0; i < genres.length; i++) {
                if (str.equals(genres[i])) {
                    sList.add(new Song(i, plays[i]));
                }
            }
            sList.sort((o1, o2) -> o2.plays - o1.plays);
            answer.add(sList.get(0).number);
            if (sList.size() > 1) {
                answer.add(sList.get(1).number);
            }
        }
        return answer.stream().mapToInt(i -> i).toArray();
    }
    class Song {
        public int number;
        public int plays;
        public Song(int number, int plays) {
            this.number = number;
            this.plays = plays;
        }
    }
    
}
profile
Hello, I'm nunu

0개의 댓글