요르딩딩
프로그래머스 : 실패율 본문
728x90
반응형
class Solution {
static int[] stay, tot;
public int[] solution(int N, int[] stages) {
int[] answer = new int[N];
// 초기화
stay = new int[N + 2]; //모두 다 클리어한 경우 N+2
tot = new int[N + 2];
for (int i = 0; i < stages.length; i++) {
int value = stages[i];
stay[value]++;
for (int j = 1; j <= value; j++) {
tot[j]++;
}
}
List<double[]> list = new ArrayList<>();
for (int i = 1; i < tot.length - 1; i++) { //0,마지막번쨰 버리기
double value = 0;
if(tot[i] != 0) {
value = ((double) stay[i] / (double) tot[i]);
}
list.add(new double[] { i, value }); //*****
}
Collections.sort(list, new Comparator<double[]>() { // ***********
@Override
public int compare(double[] a, double[] b) {
return Double.valueOf(b[1]).compareTo(Double.valueOf(a[1])); //*****
}
});
for (int i = 0; i < list.size(); i++) {
double[] a = ((double[]) list.get(i));
answer[i] = (int) a[0];
}
return answer;
}
// TreeMap<Integer, Object> map = new TreeMap<>(Collections.reverseOrder());
// for (int i = 1; i < tot.length; i++) {
// if (i != N + 1) {
// map.put((int) ((double) stay[i] / (double) tot[i] * 100), i);
// }
// }
// ArrayList<Integer> arrList = new ArrayList<Integer>();
// for (Entry<Integer, Object> a : map.entrySet()) { //***********
// arrList.add((Integer) a.getValue());
// }
// answer = arrList.stream().mapToInt(i -> i).toArray(); //***********
// Arrays.sort(tot, Collections.reverseOrder()); // 역순
// answer = Arrays.stream(tot).mapToInt(i -> i).toArray(); // Integer[] -> int[] //***********
}
728x90
반응형
'[코딩테스트] > 문제풀이' 카테고리의 다른 글
프로그래머스 : 더 맵게 (우선순위 큐) (0) | 2022.05.13 |
---|---|
프로그래머스 : [1차]비밀지도 (2진수, 비트연산) (0) | 2022.05.03 |
프로그래머스 : 방금그곡 (0) | 2022.04.20 |
프로그래머스 : 124나라 (규칙찾기) (0) | 2022.04.19 |
프로그래머스 : 파일명 정렬 (comparator , 정규식) (0) | 2022.04.18 |
Comments