본문 바로가기

알고리즘구현능력/문제해결능력

[javascript] 프로그래머스/실패율

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
function solution(N, stages) {
    //N은 STAGES의 개수
    //stages.length는 도전한 사용자의수
    //stage의 각 배열의 값은 사용자가 도달한 스테이지 값.
    //제외시켜야할 플레이어수 = 성공한 플레이어..
    let resultArray = [];
    let stageSize =stages.length;
     for(let i=1;i<=N;i++){
         let top = 0;    //분자
         let bottom = 0//분모
         for(let j=0;j<stageSize;j++){
             if(stages[j]===i){
                 top++;
                 bottom++;
             }
             else if(stages[j]>i){
                 bottom++;
             }
         }
         resultArray.push({   
          stage : i,
          failRate : bottom = 0 || top === 0 ? 0 : top/bottom    //분자나 분모가 0일떄는 0 그외에는 분자/분모
         });
     }
    return (resultArray.sort(function(a,b){
        if(a.failRate===b.failRate){
            return a.stage - b.stage;
        }
        else{
            return b.failRate - a.failRate;
        }
    }).map(element=>element.stage));
 
}
cs