새소식

Programmers

[Programmers] 실패율 문제 - (javascript)

  • -
728x90
문제 이름 :  실패율

 

<<< 문제 내용 >>>

 

function solution(N, stages) {
    let answer = [];
    
    let users = stages.length;
    for(let i=1; i<=N; i++){
        let stageLevelFilter = stages.filter(el=> el===i).length;
        answer.push([i, stageLevelFilter/users]);
        users -= stageLevelFilter
    }
    
    answer.sort((a, b) => b[1] - a[1]);
    
    return answer.map(el=> el[0]);
}

* 코드는 짧지만.. 처음엔 생각보다 하드코딩하고 틀려버렸다.

5번째 스테이지까지 있을때 4번까지만 결과가 있고, 5번은 없는 경우 5번은 NaN이 나와서

이를 예외처리한다고 isNaN을 사용해 처리해서 '0'으로 해야하는데 잘못보고 '1'로 하고 정답이 안나와서 굉장히

당황했었다.. ㅠㅠ

 

에라이 다시 풀어보자 하고 싹 지우고, 코드도 좀 더 간략화하면서 NaN을 놓치고 제출했는데 웬걸? 맞았다.

 

알고보니 NaN은 정렬해도 자동으로 제일 작은 수로 맨 뒤로 가게 되는 것이었다.

물론 '0'으로 처리했어도 답은 같았을 것 같다.

 

 

 

도움이 되셨다면 공감 부탁드립니다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.