사이트 : 프로그래머스
푼 날짜 : 2022-06-21
난이도 : LV1
제목 : 실패율
public class 실패율 {
public ArrayList<Integer> solution(int N, int[] stages) {
Map<Integer,Double> result = new HashMap<>();
for (int i = 1; i < N + 1; i++) {
int clear = 0;
int challenge = 0;
for (int stage : stages) {
if (stage >= i) {
clear++;
}
if (stage == i) {
challenge++;
}
}
if(challenge==0||clear==0){
result.put(i,0.0);
}
else{
result.put(i,(double)challenge / clear);
}
}
ArrayList<Integer> list = new ArrayList<>();
list.addAll(result.keySet());
Collections.sort(list,Comparator.comparingDouble(result::get).reversed());
return list;
}