내가 작성한 답

function solution(N, stages) {
    const answer = [];
    let length = stages.length;
    const test = [];

    for(let i = 1; i <= N; i++){
        let stageCount = stages.filter(number => number === i).length;
        test.push({stage : i, fail : stageCount / length});
        length -= stageCount;
    }
    test.sort((a,b) => b.fail - a.fail);
    test.map((value, index) => {
        answer.push(value.stage);
    })
    return answer;
}

다른 답

function solution(N, stages) {
    let result = [];
    for(let i=1; i<=N; i++){
        let reach = stages.filter((x) => x >= i).length;
        let curr = stages.filter((x) => x === i).length;
        result.push([i, curr/reach]);
    }
    result.sort((a,b) => b[1] - a[1]);
    return result.map((x) => x[0]);
}

해석

나는 우선 filter를 통해 각 스테이지에 도달한 사람을 구했다.
그 이후 stage와 실패한 사람을 따로 구한 후 test 배열에 추가했다.
실패율대로 정리 한 후 answer에 stage를 추가했다.

다른 답은 x가 스테이지보다 클 경우의 숫자와 각 스테이지의 수를 구한 후 해당 값을 구했다.

profile
개발자가 되고 싶은 지망생

0개의 댓글

Powered by GraphCDN, the GraphQL CDN