function solution(N, stages) {
var answer = [];
var status = [];
let users = stages.length;
for (let i = 0; i < N; i++) {
let tried = stages.filter(e => i < e).length;
let stay = stages.filter(e => i+1 == e).length;
let fail = stay / tried;
status.push({stage: i + 1, fail: fail});
status.sort((a, b) => b.fail - a.fail);
}
for (let i = 0; i < N; i++){
answer.push(status[i].stage);
}
return answer;
}
테스트 케이스로는 위의 코드로 실패율이 같을 경우,
알아서 작은 번호의 스테이지 먼저 정렬되는것 같으나 코드로 그런 조건을 넣어주지 않았어
실패율이 같다면 작은 번호의 스페이지 먼저 정렬하는 것을 추가
function solution(N, stages) {
var answer = [];
var status = [];
let users = stages.length;
for (let i = 0; i < N; i++) {
let tried = stages.filter(e => i < e).length;
let stay = stages.filter(e => i+1 == e).length;
let fail = tried == 0 || stay == 0 ? 0 : stay / tried;
status.push({stage: i + 1, tried: tried, stay: stay, fail: fail});
status.sort((a, b) => {
if (a.fail === b.fail) {
return a.stage - b.stage;
} else {
return b.fail - a.fail;
}
});
}
for (let i = 0; i < N; i++){
answer.push(status[i].stage);
}
return answer;
}
'프로그래머스 > JavaScript' 카테고리의 다른 글
[프로그래머스 JavaScript] Level2 탑 (0) | 2020.06.15 |
---|---|
[프로그래머스 JavaScript] Level1 [1차] 비밀지도 (0) | 2020.06.11 |
[프로그래머스 JavaScript] Level1 예산 (0) | 2020.06.09 |
[프로그래머스 JavaScript] Level1 크레인 인형뽑기 게임 (0) | 2020.06.04 |
[프로그래머스 JavaScript] Level1 체육복 (0) | 2020.06.03 |