<나의 풀이>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | import java.util.*; class Solution { public int[] solution(int N, int[] stages) { int[] answer = new int[N]; int usersu=stages.length; HashMap<Integer,Integer> map = new HashMap<>(); HashMap<Integer,Double> failmap = new HashMap<>(); List<Double> faillist = new ArrayList<>(); List<Integer> list = new ArrayList<>(); double[] ff; for(int i=1; i<=N+1; i++) map.put(i,0); for(int num : stages){ map.put(num,map.get(num)+1); } for(int i=1; i<=N+1; i++){ double failper=1; if(usersu>0) failper = (usersu-map.get(i))/(double)usersu; failmap.put(i,failper); if(!faillist.contains(failper)) faillist.add(failper); usersu-=map.get(i); } ff= new double[faillist.size()]; for(int i=0; i<faillist.size(); i++){ ff[i] = faillist.get(i); } Arrays.sort(ff); for(int i=0; i<faillist.size(); i++){ for(int j=1; j<N+1; j++){ int k=0; if(failmap.get(j)==ff[i]){ list.add(j); } } } for(int i=0; i<list.size(); i++){ answer[i]=list.get(i); } return answer; } } | cs |