https://www.welcomekakao.com/learn/courses/30/lessons/42889
1번스테이지부터 최종 스테이지까지
실패한 사람을 카운트
1번 스테이지 = 1번 카운트 / 총인원
2번 스테이지 = 2번 카운트 / (총인원 - 1번 카운트)
를 반복해서 구하는것으로 최종 각 스테이지별 실패율을 구했습니다.
조금 고민한 부분이 실패율별 내림차순 정렬해서 출력하는건데
그냥 버블정렬을 사용했어요.
버블정렬만세.....
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
public class Solution {
public int[] solution(int N, int[] stages) {
int stagesCount = stages.length;
ArrayList<Integer> copySta = new ArrayList<>();
//fail 부분은 인덱스 1 부터 사용할래
int[] failCount = new int[N+1];
double[] failP = new double[N+1];
for (int i = 0; i < failCount.length; i++) {
failCount[i] = 0;
}
for (int i = 0; i < failP.length; i++) {
failP[i] = 0.0;
}
for (Integer integer : stages) {
copySta.add(integer);
}
for (int i = 1; i <= N; i++) {
for (Integer integer : copySta) {
if(integer == i) {
failCount[i]++;
}
}
}
for (int i = 1; i < failCount.length; i++) {
failP[i] = (double)failCount[i] / stagesCount;
stagesCount -= failCount[i];
}
HashMap<Integer, Double> pair = new HashMap<>();
for (int i = 1; i <= N; i++) {
pair.put(i, failP[i]);
}
int[] sortTemp = new int[pair.size() + 1];
Iterator<Integer> keys = pair.keySet().iterator();
int index = 1;
while(keys.hasNext()){
sortTemp[index] = keys.next();
index++;
}
// for(int t: sortTemp) {
// System.out.println("key:" + t + " value:" + pair.get(t));
// }
//keys = pair.keySet().iterator();
for (int i = 1; i <= sortTemp.length; i++) {
for(int j = 1 ; j <= sortTemp.length - i - 1 ; j++) {
//System.out.println("j:" + j + " " + pair.get(sortTemp[j]) + " < " + "j+1:" + (j+1) + " " + pair.get(sortTemp[j+1]) + " = " + (pair.get(sortTemp[j]) < pair.get(sortTemp[j+1])));
if(pair.get(sortTemp[j]) < pair.get(sortTemp[j+1])) {
int temp = sortTemp[j+1];
sortTemp[j+1] = sortTemp[j];
sortTemp[j] = temp;
}
}
// System.out.print("i:" + i + " 루프의 결과 = ");
// for(int t: sortTemp) {
// System.out.print(t + " ");
// }
// System.out.println();
}
int[] answer = new int[sortTemp.length - 1];
for (int i = 1; i < sortTemp.length; i++) {
answer[i - 1] = sortTemp[i];
}
return answer;
}
}
저장이나 정렬부분은 더 깔끔히 하신분이 많으신듯하지만
역시 바로떠오르는건 이런것뿐이네요.
'Android > java' 카테고리의 다른 글
android studio : Could not find method dependencyResolutionManagement() 를 해결하기까지의 기록 (0) | 2021.12.22 |
---|---|
프로그래머스 - 주식가격 (0) | 2021.04.30 |
2019 카카오 신입 공채 1차 코딩 테스트 1번문제 오픈채팅방 - 자바 (0) | 2019.07.24 |