알고리즘문제

프로그래머스 > 실패율

단점이없어지고싶은개발자 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

 

반응형