import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.TreeMap;
public class BestAlbum {
public int[] solution(String[] genres, int[] plays) {
ArrayList<Integer> answer = new ArrayList<>();
ArrayList<Integer> playsList = new ArrayList<>();
LinkedHashMap<String, Integer> sumMap = new LinkedHashMap<>();
TreeMap<Integer, String> rankMap = new TreeMap<>(Collections.reverseOrder());
for (int i = 0; i < plays.length; i++) {
playsList.add(plays[i]);
if (sumMap.containsKey(genres[i])) {
sumMap.put(genres[i], sumMap.get(genres[i]) + plays[i]);
} else {
sumMap.put(genres[i], plays[i]);
}
}
for (String key : sumMap.keySet()) {
rankMap.put(sumMap.get(key), key);
}
ArrayList<Integer> playsSortList = new ArrayList<>(playsList);
Collections.sort(playsSortList);
Collections.reverse(playsSortList);
int count = 0;
for (int rkey : rankMap.keySet()) {
for (int play : playsSortList) {
if (playsList.contains(play) && genres[playsList.indexOf(play)].equals(rankMap.get(rkey))) {
count++;
answer.add(playsList.indexOf(play));
playsList.set(playsList.indexOf(play), 0);
}
if (count == 2) {
break;
}
}
count = 0;
}
return answer.stream().mapToInt(i -> i.intValue()).toArray();
}
}
TreeMap<Key, Value> map = new TreeMap<>(Collections.reverseOrder());