문제
프로그래머스 문제
내 풀이
- 카카오 문제라 그런가 문제 지문 길고.. 어렵다.... 힝
function solution(N, stages) {
let staged = Array(N).fill(0);
let completed = Array(N).fill(0);
for(var s of stages){
for(var i=0; i<s; i++){
if(i < N){
staged[i]++;
if(i === s-1) completed[i]++;
}
}
}
let fail = staged.map((s, i) => completed[i] / s + "/" + (i+1)).sort((a,b) => b.split("/")[0] - a.split("/")[0]);
return fail.map(per => +per.split("/")[1]);
}
개선점
- 나랑 논리는 똑같은데 나보다 훨씬 예쁘고 알아보기 쉬워서 갖고왔다.
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]);
}