자바스크립트(JavaScript)
//const N = 5;
//const stages = [2, 1, 2, 6, 2, 4, 3, 3];
function solution(N, stages) {
let arr = [];
let totalNum = stages.length;
for (let i = 1; i <= N; i++) {
let stageNum = stages.filter(ele => ele === i).length // 해당스테이지를 통과하지 못한 유저수.
let failRatio = 0; // 실패율의 기본값을 정한다.
if (stageNum === 0) {
failRatio = 0; // 해당 스테이지를 통과하지 못한 유저가 없다면 실패율은 0이다.
} else {
failRatio = stageNum / totalNum; // 해당 스테이지를 통과하지 못한 유저가 있다면 실패율을 계산해준다. }
}
totalNum -= stageNum; // 전체 유저수중 해당 스테이지를 통과하지 못한 유저수를 빼준다.
arr.push({idx:i, ratio:failRatio}); // arr에 idx와 ratio로 저장해준다.
}
arr.sort((a, b) => {
if(a.ratio > b.ratio) {
return -1;
} else if(a.ratio < b.ratio) {
return 1;
} else {
if(a.idx > b.idx) {
return 1;
} else {
return -1;
}
}
})
return arr.map(ele => ele.idx);
}
console.log(solution(N, stages));