알고리즘
2019 KAKAO BLIND RECRUITMENT > 실패율
kwonpinky
2024. 3. 24. 05:07
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42889
function solution(N, stages) {
stages.sort((a, b) => a - b);
let map=new Map()
for(let i=0;i<stages.length;i++){
if(!map.get(stages[i])){
map.set(stages[i],1)
}else{
map.set(stages[i],map.get(stages[i])+1)
}
}
for(let i=1;i<=N;i++){
if(!map.get(i)){
map.set(i,0)
}
}
let newArr=[...map]
newArr.sort((a,b)=>a[0]-b[0])
let answer=[]
for(let i=0;i<N;i++){
answer.push([i+1,0])
}
for(let i=0;i<answer.length;i++){
if(!newArr[i])continue
let volunteer=newArr.slice().splice(i,newArr.length).reduce((a,b)=>a+b[1],0)
let failTrialOfIdx=newArr[i][0]-1===i?newArr[i][1]:0
answer[i]=[i+1,failTrialOfIdx/volunteer]
}
answer=answer.sort((a,b)=>b[1]-a[1]).map((item)=>item[0])
return answer
}728x90