난이도 : Level. 1
언어 : Javascript
출제 내역 : 2019 KAKAO BLIND RECRUITMENT
각 스테이지의 실패율을 구해서 실패율이 높은 스테이지 순서로 도출
function solution(N, stages) {
let newArr = [];
let totalStage = stages.length
for (let i = 1; i<=N; i++) {
let stageNum = stages.filter(num=> num==i).length
let fail = 0
if (stageNum === 0) {
fail = 0
} else {
fail = stageNum/totalStage
}
totalStage = totalStage - stageNum
newArr.push({index:i, value:fail})
}
먼저 전체 참여 인원을 구하고 (totalStage
)
스테이지 마다 몇명이 못깨고 있는지를 구해줍니다 (stageNum
)
그 뒤 실패율을 구해주고, 해당 결과를 newArr 에 객체 형태로 넣어줍니다.
newArr.sort((a,b)=>{
if(a.value > b.value){
return -1;
} else if (a.value < b.value){
return 1;
} else {
if (a.index > b.index){
return 1;
} else {
return -1;
}
}
})
return newArr.map(list => list.index);
}
그 뒤, 객체 결과값을 이용해서 내림차순으로 정렬해줍니다.
정렬 된 값을 map을 이용해 인덱스 값을 배열로 도출해줍니다.