일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SseEmitter
- cookie
- WIL
- google oauth
- jenkins
- DI
- bean
- spring
- Hibernate
- session
- real time web
- oauth
- flask
- JPA
- 생명주기 콜백
- hanghae99
- javascript
- html
- Java
- python
- programmers
- web
- jQuery
- server send event
- Project
- 항해99
- Anolog
- JWT
- Stream
- Spring Security
Archives
- Today
- Total
끄적끄적 코딩일지
[Programmers]실패율(난이도:★★★★★) 본문
https://programmers.co.kr/learn/courses/30/lessons/42889
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
import java.util.Arrays;
class Solution {
public int[] solution(int N, int[] stages) {
int[] answer = solutionA(N,stages);
return answer;
}
public int[] solutionA(int N, int[] stages){
int ans[] = new int[N];
for(int i = 0 ;i < N; i++)
ans[i] = i+1;
double[] fails = getFail(N,stages);
int idx = fails.length -1;
// 실페율에 따라서 ans[]배열도 정렬
for(int i = 0 ; i < fails.length;i++){
for(int j = 0; j < idx;j++){
if(fails[j] < fails[j+1]){
double t = fails[j];
fails[j] = fails[j+1];
fails[j+1] = t;
int tmp = ans[j];
ans[j] = ans[j+1];
ans[j+1] = tmp;
}
}
idx--;
}
return ans;
}
// 실페율 구하기
public double[] getFail(int n,int[] stages){
double[] arry = new double[n];
int len = stages.length;
for(int i = 1; i <= n;i++){
int count = 0;
for(int j : stages){
if(i == j)
count++;
}
arry[i-1] = (double) count / (double) len;
len -= count;
}
return arry;
}
}
'알고리즘' 카테고리의 다른 글
[Programmers]폰켓몬(난이도:★★★★★) (0) | 2022.05.17 |
---|---|
[Programmers]체육복(난이도:★★★★★) (0) | 2022.05.17 |
[Programmers]소수찾기(난이도:★★★★★) (0) | 2022.05.16 |
[Programmers]나머지가 1이 되는 수 찾기(난이도:★★★★★) (0) | 2022.05.16 |
[Programmers]K번째수(난이도:★★★★) (0) | 2022.05.16 |