반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

undefined

[프로그래머스] 실패율 -JS 본문

Coding Test

[프로그래머스] 실패율 -JS

JavaScripter 2022. 6. 25. 11:30
반응형

문제 설명


문제 풀이

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를 바꿀 수 있다.

반응형
Comments