상세 컨텐츠

본문 제목

[Kotlin] 실패율

프로그래밍

by 독서와 여행 2021. 4. 18. 17:05

본문

코틀린 문법이 아직 익숙하지 않다. 

그 뭐냐 이건 다른 사람 코드를 배낀거다. 

처음에는 이해가 잘 안갔는데 그냥 혼자 하나하나 파해치다 보니까 이해가 갔다.

class Solution{
    fun solution(N:Int, stages: IntArray){
        var answer = IntArray(N)
        val indexMap : MutableMap<Int, Int> = mutableMapOf() // 파이썬 딕셔너리와 비슷
        val failutrMap : MutableMap<Int, Double> = mutableMapOf() 

        stages.forEach { 
            when(indexMap.containsKey(it)){ // stage for문 돌면서 indexMap에 있는지 확인 
                true -> indexMap[it] = indexMap.getValue(it) + 1  // 있으면 + 1
                false -> indexMap[it] = 1 //처음에는 없으니 + 1
        }

        var size = stages.size // 스테이지 통과한 사람들 일단 1단계는 모두니까 !

        for (i in 1..N){
            when(indexMap.containsKey(i)){
                true -> {
                failutrMap[i] = indexMap.getValue(i) / size.toDouble()
                totalSize -= indexMap.getValue(i) // 스테이지 통과한 사람들
                }
                false -> failutrMap[i] = 0.0
            }
        }

        var sub_list = failutrMap.toList().sortedByDescending { (_, value) -> value }
        for (i in 0 until N) answer[i] = sub_list[i].first

        return answer
    }
}

 

관련글 더보기

댓글 영역