문제
게임 스테이지 별 실패율을 구해 내림차순 정렬하여 실패율이 높은 스테이지 순서대로 반환하는 문제
풀이 과정
- 실패율 = 도달했으나 성공하지 못한 플레이어 수 / 도달한 플레이어 수
- Map에 스테이지 별 실패율을 넣어 저장
- values를 기준으로 내림차순 정렬 이후 key값 반환
코드
class Solution {
fun solution(N: Int, stages: IntArray): IntArray {
var answer = IntArray(N)
val stage = HashMap<Int, Double>()
// 스테이지 별 실패율 저장
for(i in 1 .. N){
var failPercent = 0.0
val a = stages.count{it==i}.toDouble()
val b = stages.count{it >= i}.toDouble()
if(stages.count{it == i} != 0) failPercent = a / b
stage.put(i, failPercent)
}
// 실패율에 따른 내림차순
var stageList = stage.toList()
stageList = stageList.sortedByDescending{it.second}
//스테이지 저장
for(i in stageList.indices){
answer[i] = stageList[i].first
}
return answer
}
}
'코딩 테스트 > Lv.1' 카테고리의 다른 글
[프로그래머스] 둘만의 암호 with Kotlin (0) | 2023.11.06 |
---|---|
[프로그래머스] 크레인 인형뽑기 게임 (0) | 2023.11.06 |
[프로그래머스] 키패드 누르기 with Kotlin (0) | 2023.11.06 |
[프로그래머스] 햄버거 만들기 with Kotlin (0) | 2023.11.06 |
[프로그래머스] 바탕화면 정리 with Kotlin (0) | 2023.11.06 |