Skip to main content

실패율

Solution

function solution(N, stages) {
// 실패 인원이 있는 라운드를 산출한다.
let accObj = stages.reduce((acc, cur) => {
if (cur <= N) acc[cur] = (acc[cur] || 0) + 1;

return acc;
}, {});

// 각 라운드마다 실패율을 계산한다.
let remainPeople = stages.length;
for (let i = 1; i <= N; i++) {
const tmp = accObj[i] || 0;
accObj[i] = tmp / remainPeople;
remainPeople -= tmp;
}

// 정렬한다.
return Object.keys(accObj)
.sort((a, b) => accObj[b] - accObj[a])
.map((str) => Number(str));
}

Review

.

References