프로그래머스 | 실패율_JS

김명성·2021년 11월 9일
0

Algorithm

목록 보기
48/61
post-thumbnail

난이도 : Level. 1
언어 : Javascript
출제 내역 : 2019 KAKAO BLIND RECRUITMENT

❓ Question

각 스테이지의 실패율을 구해서 실패율이 높은 스테이지 순서로 도출

📝 My Solution

전체 풀이 코드 👈🏻 클릭시 Github로 이동

function solution(N, stages) {
    let newArr = [];
    let totalStage = stages.length
        for (let i = 1; i<=N; i++) {
            let stageNum = stages.filter(num=> num==i).length
            let fail = 0
            if (stageNum === 0) {
                fail = 0
            } else {
                fail = stageNum/totalStage
            }
            totalStage = totalStage - stageNum
            newArr.push({index:i, value:fail})
        }

먼저 전체 참여 인원을 구하고 (totalStage)
스테이지 마다 몇명이 못깨고 있는지를 구해줍니다 (stageNum)
그 뒤 실패율을 구해주고, 해당 결과를 newArr 에 객체 형태로 넣어줍니다.

newArr.sort((a,b)=>{
        if(a.value > b.value){
            return -1;
        } else if (a.value < b.value){
            return 1;
        } else {
            if (a.index > b.index){
                return 1;
            } else {
                return -1;
            }
        }
    })
    
    return newArr.map(list => list.index);
}

그 뒤, 객체 결과값을 이용해서 내림차순으로 정렬해줍니다.
정렬 된 값을 map을 이용해 인덱스 값을 배열로 도출해줍니다.

결과

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보