undefined
[프로그래머스] 실패율 -JS 본문
반응형
문제 설명

문제 풀이
function solution(N, stages) {
let userNum = stages.length
let answer = []
for(let i = 1; i <= N; i++ ) {
let userInOneStage = stages.filter((e)=>e===i).length
let value = userInOneStage/userNum
userNum-=userInOneStage
answer.push({key:i,value:value})
answer.sort((a,b)=>
a.value === b.value ? a.key-b.key : b.value-a.value
)
}
return answer.map(e=>e.key)
}
1. filter를 이용하여 같은 스테이지에 있는 유저를 구해준다.
2. value = 실패율 (스테이지 클리어 못한 유저수/ 스테이지에 도달한 유저수) 을 구해준다.
3. 다음 스테이지의 실패율을 구하기 위하여 클리어하지 못한 유저의 수 를 전체 유저수에서 빼준다. (스테이지에 도달한 유저수를 맞춰줌)
4. 객체를 이용하여 각 key 와 value를 answer 배열에 넣어줌 (몇번째 스테이지인지를 유지시키면서 값을 변형시킬 수 있다.)
5. value가 같을 경우 => 스테이지번호(key) 기준 오름차순 // 같지않을경우 실패율(value) 기준 내림차순 정렬
6. answer배열에서 key 값만 빼서 리턴
배운 점
객체를 활용하면 순서값을 유지시키면서 value를 바꿀 수 있다.
반응형
'Coding Test' 카테고리의 다른 글
[프로그래머스] 비밀지도 -JS (0) | 2022.06.27 |
---|---|
[프로그래머스] 다트게임 -자바스크립트(JS) (0) | 2022.06.26 |
[프로그래머스] 내적 - JS (0) | 2022.06.23 |
[프로그래머스] 키패드 누르기 -JS (0) | 2022.06.22 |
[프로그래머스] 최소 직사각형 -JS (0) | 2022.06.22 |