알고리즘문제
프로그래머스 > 실패율
단점이없어지고싶은개발자
2022. 10. 8. 15:39
반응형
function solution(N, stages) {
const stagesRecord = {};
let arrLength = stages.length;
//배열에 만약 통과한 스테이지가 있다면 해당 스테이지는 0으로 넣어준다.
for (let i = 1; i <= N; i++) {
stagesRecord[i] = 0;
}
//배열을 돌면서 스테이지마다 몇명이 도전하고 있는지 객체에 할당한다.
stages.forEach((stage) => {
if (stagesRecord.hasOwnProperty(stage)) {
stagesRecord[stage] += 1;
}
});
const sortable = [];
//해당 스테이지 : 실패율을 계산해준다.
for (const key in stagesRecord) {
if (key <= N) {
arrLength -= stagesRecord[key];
sortable.push([key, obj[key] / arrLength]);
}
}
//실패율을 토대로 내림차순을 해주고, 배열의 스테이지순서만 반환해준다.
return sortable.sort((a, b) => b[1] - a[1]).map((el) => Number(el[0]));
}
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
Object.prototype.hasOwnProperty() - JavaScript | MDN
hasOwnProperty() 메소드는 객체가 특정 프로퍼티를 가지고 있는지를 나타내는 불리언 값을 반환한다.
developer.mozilla.org
반응형