본문 바로가기
알고리즘 문제연습/기초 알고리즘

[프로그래머스] 실패율

by 은z 2023. 2. 13.
import java.util.*;

class Solution {
    public int[] solution(int N, int[] stages) {
       int[] answer = new int[N];
		int stageNum = N;
		int[] player = new int[stageNum];
		int[] fail = new int[stageNum];
		Map<Integer, Double> map = new HashMap<>();
		List<Integer> answerList = new ArrayList<>();

		for(int x=0; x<stageNum; x++) { //0 스테이지 4
			for(int y=0; y<stages.length; y++) {
				if(stages[y] >= x+1) { // 참여함
					player[x] += 1;
					if(stages[y] == x+1) { // 참여는 했는데 아직 클리어X
						fail[x] += 1;
					}
				}
			}
		}

		for(int i=0; i<stageNum; i++){
			Double div = (double) fail[i] / player[i];
			if(div.isNaN()) div=0d;
			map.put(i+1, div);
		}

		List<Integer> keyList = new ArrayList<>(map.keySet()); // key list

		Collections.sort(keyList, ((o1, o2) -> (map.get(o2).compareTo(map.get(o1)))));

		return keyList.stream().mapToInt(integer->integer).toArray();
    }
}

댓글