슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다.
이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라.
제한사항
입출력 예 설명
입출력 예 #1
2 번 스테이지 실패율 : 3/7
마찬가지로 나머지 스테이지의 실패율은 다음과 같다.
3 번 스테이지 실패율 : 2/4
4번 스테이지 실패율 : 1/2
5번 스테이지 실패율 : 0/1
각 스테이지의 번호를 실패율의 내림차순으로 정렬하면 다음과 같다.
[3,4,2,1,5]
입출력 예 #2
[4,1,2,3]
function solution(N, stages) {
let num2 = stages.length;
let fail =[];
for (let i=1; i <=N; i++) {
let num = stages.filter(n=> n ===i ).length;
fail.push([i,num/num2]);
num2 = num2 - num
}
let answer = fail.sort((a,b)=>b[1]-a[1]);
return answer.map(n=>n[0]);
}
map과 filter를 유연하게 사용하지 못하여 어려움을 겪었던 문제.
더 열심히 공부해야겠다.
//2023-08-21 리첵 완료