[프로그래머스 레벨 1 JavaScript] '실패율' 풀이
6986 단어 JavaScriptJavaScript
문제 링크: https://programmers.co.kr/learn/courses/30/lessons/42889
function solution(N, stages) {
let answer = [];
let stageLen = stages.length;
for (let i = 1; i <= N; i++) { // 각 스테이지 검사
let stageNum = stages.filter((item) => item == i).length; // 해당 스테이지 못깬사람 몇명인지 저장
let fail = 0;
if (stageNum == 0) {
fail = 0;
} else {
fail = stageNum / stageLen; // 실패율 계산
}
stageLen -= stageNum; // 각 단계에서 실패한 사람 빼주기
answer.push({ idx: i, failPercent: fail }); // object에 저장
}
answer.sort((a, b) => {
if (a.failPercent > b.failPercent) {
//실패율 내림차순 정렬
return -1;
} else if (a.failPercent < b.failPercent) {
return 1;
} else {
// 실패율 같으면 인덱스 오름차순 정렬
if (a.idx < b.idx) {
return -1;
} else {
return 1;
}
}
});
return answer.map((item) => item.idx); // stage만 출력
}
sort() 함수 잘 기억하자
반환값 < 0 : a가 b보다 앞에 있어야함
반환값 = 0 : a와 b의 순서 바꾸기 x
반환값 > 0 : b가 a보다 앞에 있어야 함
Author And Source
이 문제에 관하여([프로그래머스 레벨 1 JavaScript] '실패율' 풀이), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@boyfromthewell/프로그래머스-레벨-1-JavaScript-실패율-풀이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)