실패율

 

    let result = new Array();
    
    for(let i = 0; i < N; i++){
        result.push(i+1);
        
    }
    return result.sort((a,b)=>failures[b]-failures[a]);

https://programmers.co.kr/learn/courses/30/lessons/42889#

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스��

programmers.co.kr

실패율 = 해당스테이지에 남아있는 사람 / 해당 스테이지 도달한 사람(통과 포함)

  • 스테이지에 머물러 있는 사람
    for(let stage of stages){
        stageCount[stage]++;
    }
  • 해당 스테이지를 도달한 사람
    for(let i = 2; i < N+2; i++){
        stageUsers[i] = stageUsers[i-1] - stageCount[i-1];
    }
  • 스테이지 별 실패율
    for(let i = 1; i < N+2; i++){
        failures[i] = stageCount[i] / stageUsers[i];
    }
  • 실패율에 따른 스테이지 별 sorting

 

 

function solution(N, stages) {
    let stageUsers = new Array(N+2).fill(0);
    stageUsers[1] = stages.length;

    let stageCount = new Array(N+2).fill(0);
    let failures = new Array(N+2).fill(0);
    
    for(let stage of stages){
        stageCount[stage]++;
    }
    
    for(let i = 2; i < N+2; i++){
        stageUsers[i] = stageUsers[i-1] - stageCount[i-1];
    }
    
    for(let i = 1; i < N+2; i++){
        failures[i] = stageCount[i] / stageUsers[i];
    }
    
    let result = new Array();
    
    for(let i = 0; i < N; i++){
        result.push(i+1);
        
    }
    return result.sort((a,b)=>failures[b]-failures[a]);
    
}

 

 

 

728x90
반응형

'Problem Solving' 카테고리의 다른 글

[1차] 뉴스 클러스터링  (0) 2020.09.04
[1차] 비밀지도  (0) 2020.09.03
[1차] 다트 게임  (0) 2020.09.03
소수 찾기  (0) 2020.09.03
서울에서 김서방 찾기  (0) 2020.09.03