실패율 (sort, filter, push, map)

Eunsoo Ha·2021년 8월 9일

programmers

목록 보기
16/37

이차원 배열에 실패율, 스테이지 번호를 저장해서 스테이지의 번호를 실패율의 내림차순으로 정렬
ex) [ [ 0.5, 3 ], [ 0.5, 4 ], [ 0.42857142857142855, 2 ], [ 0.125, 1 ], [ 0, 5 ] ] => [3, 4, 2, 1, 5]

function solution(N, stages) {
    var answer = [];
    
    stages.sort((a, b) => a - b);
    
    let obj = {};
    for (let i = 1; i <= N; i++) {
        obj[i] = 0;
    }
    
    for (let i in stages) {
        for (let j = 1; j <= stages[i]; j++) {
            obj[j] += 1;
        }
    }
    
    let tmp = [];
    
    for (let i = 0; i < N; i++) {
        let fail = (stages.filter(item => item === (i + 1)).length) / obj[i + 1];
        tmp.push([fail, i + 1]);
    }
    
    tmp.sort((a, b) => b[0] - a[0]);
    tmp.map(a => answer.push(a[1]));
    
    return answer;
}

0개의 댓글