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가 스테이지보다 클 경우의 숫자와 각 스테이지의 수를 구한 후 해당 값을 구했다.