프로그래머스 실패율
업데이트:
실패율
카카오 문제는 항상 느끼는건데 문제 설명이 어렵다
한 여섯번 읽은 듯..
배열을 통해 각 스테이지를 클리어 하지 못한 이용자를 입력 후 총 인원수를 빼주면서 실패율을 계산 함
import java.util.*;
class Solution {
static class Failure implements Comparable<Failure>{
int num;
double failureRate;
Failure(int num, double failureRate) {
this.num = num;
this.failureRate = failureRate;
}
@Override
public int compareTo(Failure others) {
return Double.compare(this.failureRate, others.failureRate);
}
}
public static int[] solution(int N, int[] stages) {
int[] answer = new int[N];
int[] checkStages = new int[N+1];
int total = 0;
for(int i = 0; i < stages.length; i++) {
if(N < stages[i]) {
total ++;
continue;
}
checkStages[stages[i]] +=1;
total ++;
}
List<Failure> list = new ArrayList<>();
for(int i = 1; i <= N; i++) {
total -= checkStages[i-1];
double f= 0;
if(checkStages[i] != 0) {
f =(double)checkStages[i] / total;
}
list.add(new Failure(i, f ));
}
Collections.sort(list, Collections.reverseOrder());
for(int i = 0; i < list.size(); i++) {
answer[i] = list.get(i).num;
}
return answer;
}
}
댓글남기기