import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
class Solution {
static class Music{
String genre;
int play;
int idx;
public Music(String genre, int play, int idx) {
this.genre = genre;
this.play = play;
this.idx = idx;
}
}
public int[] solution(String[] genres, int[] plays) {
HashMap<String,Integer> map = new HashMap<>();
for(int i = 0; i < genres.length; i++) {
map.put(genres[i], map.getOrDefault(genres[i], 0)+ plays[i]);
}
//1. 장르 선정
ArrayList<String> genreList = new ArrayList<>();
while (map.size()!=0) {
int max = 0;
String max_key = "";
for(String genre : map.keySet()) {
int tmp_cnt = map.get(genre);
if(tmp_cnt>max) {
max = tmp_cnt;
max_key = genre;
}
}
genreList.add(max_key);
map.remove(max_key);
}
//2. 장르 내 노래 선정
ArrayList<Music> result = new ArrayList<>();
for(String genre : genreList) {
ArrayList<Music> list = new ArrayList<>();
for(int i=0;i< genres.length;i++) {
if(genres[i].equals(genre)) list.add(new Music(genre, plays[i], i));
}
Collections.sort(list,((o1, o2) -> o2.play - o1.play));
result.add(list.get(0));
if(list.size()!=1) {
result.add(list.get(1));
}
}
int[] answer = new int[result.size()];
for(int i=0; i<result.size(); i++) {
answer[i] = result.get(i).idx;
}
return answer;
}
public static void main(String[] args) {
String[] genres = {"classic","pop","classic","classic","pop"};
int[] plays = {500,600,150,800,2500};
Solution st = new Solution();
int[] res = st.solution(genres,plays);
for(int i = 0; i<res.length; i++) {
System.out.println(res[i]);
}
}
}