반응형

문제 설명

전체 문제는 프로그래머스에 있습니다.

 

 

 

제한 사항

 

 

풀이

  • 우선 각 스테이지에 머무르고 있는 사용자 수를 Map으로 구현하고자 했다.
  • 그리고 stageSet을 따로 만들어서 각 스테이지별 실패율을 구하려고 했다.

 

그래서 나온 소스코드

 

function solution(N, stages) {
    var answer = [], stageMap = new Map(), len = stages.length;
    
    stages.forEach((v) => {
        stageMap.set(v, (stageMap.get(v) || 0) + 1);
    });
    
    let stageSet = [];
    
    for(let i=1; i<=N; i++) {
        stageSet.push(stageMap.has(i) ? { stage: i, failRate: stageMap.get(i) / len }:{ stage: i, failRate: 0 });
        len = len - (stageMap.get(i) || 0);
    }
    
    answer = stageSet.sort((a, b) => b.failRate - a.failRate).map((v) => {
        return v.stage;
    });
    
    return answer;
}

 

결과는 성공이었지만,, 시간이 오래 걸리는 것들이 눈에 걸렸다.

뭔가 불필요한 소스코드가 있거나 더 좋은 방법이 있는 듯했다.

 

다른 사람의 풀이를 보니.. 역시 있었다.

 

갈길이 멀구나

반응형