문제 설명
실패율
슈퍼 게임 개발자 Orelli는 큰 곤경에 처해 있습니다.
그녀가 만든 프란츠 오천성은 큰 성공을 거두었지만 최근 신규 사용자 수가 급감했습니다.
그 이유는 신규유저와 기존유저의 단계차가 너무 크기 때문입니다.
이 문제를 어떻게 처리할지 고민하던 그녀는 게임 시간을 동적으로 늘려 난이도를 조정하기로 했다.
의외로 슈퍼개발자라 대부분의 로직을 쉽게 구현하지만 실패율을 구하는 부분에서 위기에 처한다.
O’Reilly의 실패율 코드를 완성하십시오.
- 실패율은 다음과 같이 정의됩니다.
- 레벨에 도달했지만 아직 클리어하지 않은 플레이어 수/레벨에 도달한 플레이어 수
전체 단계 수 N과 사용자가 현재 정지한 단계의 수를 포함하는 배열을 인수로 취하면 가장 높은 실패 단계부터 내림차순으로 단계 수를 포함하는 배열을 반환하는 솔루션 함수가 수행됩니다.
비율. .
한계
- 시리즈 N의 수는 하나 더 500 는 다음 자연수입니다.
- 위상 길이 하나 더 200,000 다음과 같은
- 단계적으로 하나 더 N+1 다음과 같은 자연수를 포함합니다.
- 각 자연수는 사용자의 현재 도전 단계 번호를 나타냅니다.
- 단계, N+1 최종 스테이지(N 스테이지)까지 클리어한 유저를 나타냅니다.
- 각 자연수는 사용자의 현재 도전 단계 번호를 나타냅니다.
- 고장률이 같은 단계가 있으면 숫자가 낮은 단계가 먼저 와야 합니다.
- 사용자가 단계에 도달하지 않으면 단계의 실패율은 다음과 같습니다.
0 는 다음과 같이 정의됩니다.
입력/출력 예제 Nstagesresult
5 | (2, 1, 2, 6, 2, 4, 3, 3) | (3,4,2,1,5) |
4 | (4,4,4,4,4) | (4,1,2,3) |
I/O 예시 설명
입력/출력 예제 #1
총 8명의 유저가 1단계에 도전했고, 그 중 한 명은 아직 레벨을 클리어하지 못했습니다.
따라서 1단계의 실패율은 다음과 같습니다.
- 1단계 실패율: 1/8
총 7명의 유저가 Stage 2에 도전했고, 그 중 3명은 아직 레벨을 클리어하지 못했습니다.
따라서 2단계의 실패율은 다음과 같습니다.
- 2단계 실패율: 3/7
마찬가지로 나머지 단계의 실패율은 다음과 같습니다.
- 3단계 실패율: 2/4
- 4단계 실패율: 1/2
- 5단계 실패율: 0/1
각 단계의 수를 고장률 내림차순으로 정리하면 다음과 같다.
- (3,4,2,1,5)
I/O 예제 #2
모든 사용자가 최종 단계에 있으므로 실패율은 4단계에서는 1이고 나머지 단계에서는 0입니다.
- (4,1,2,3)
class Solution {
public int() solution(int N, int() stages) {
int() answer = new int(N);
double result()=new double(N);
int i,j=0;
int gd_cnt=0;
int all_cnt=0;
for(i=0;i<N;i++){
gd_cnt=0;
all_cnt=0;
answer(i)=i+1;
for(j=0;j<stages.length;j++){
if( i==(stages(j)-1) )
gd_cnt+=1;
if( i<=(stages(j)-1) )
all_cnt+=1;
}
result(i)=(double)gd_cnt/all_cnt;
}
for(i=N-1;i>=1;i--){
for(j=N-1;j>=(N-i);j--){
if( result(j-1)<result(j) ){
double temp=result(j-1);
result(j-1)=result(j);
result(j)=temp;
int temp2=answer(j-1);
answer(j-1)=answer(j);
answer(j)=temp2;
}
}
}
return answer;
}
}