프로그래머스Lv1 - 실패율

요리하는코더·2021년 8월 11일
0

알고리즘 - 문제

목록 보기
13/48
post-thumbnail

코드

function solution(N, stages) {
    var answer = [];
    let len = stages.length
    let fails = {};
    for(let i=1; i<=N;i++)
    {
        const res = stages.filter((stage) => stage == i );
        fails = {...fails, [i]: res.length/len},

        len-=res.length;
        
    }

    const sortable = Object.entries(fails)
      .sort(([, a], [, b]) => b - a)
    
    for(let i=0;i<sortable.length;i++)
        answer.push(Number.parseInt(sortable[i][0]))
    
    return answer;
}

풀이 및 소감

Javascriptfilter를 사용해 현 단계에 있는 사람들의 수를 구하고 실패율과 단계를 fails라는 object에 전개 연산자를 사용해 넣어주었다. 그 다음 object의 2번째 값으로 정렬을 해야하는데 쉬운 방법이 있는지 찾아보다가 Object.entries를 사용해 object들을 순회하면서 두번째 값으로 비교하는 방법이 있었다. 참고로 [,a]는 앞에 값(key)을 사용하지 않으므로 공백으로 두는 것이다. 그리고 fails에 단계가 문자열로 저장되서 숫자로 치환해서 해결하였다.

profile
요리 좋아하는 코린이

0개의 댓글