-
728x90
class Solution { fun solution(N: Int, stages: IntArray): IntArray { var answer = mutableListOf<Int>() var miss = mutableMapOf<Int,Double>() var missList = mutableListOf<Double>() for(i in 1 .. N){ if((stages.count{e-> e == i }).toDouble()== 0.0 && stages.count{e-> e >= i }.toDouble() == 0.0){ miss.put(i,0.0) missList.add(0.0) continue //NaN 발생하여 대체 } miss.put(i,(stages.count{e-> e == i }).toDouble()/stages.count{e-> e >= i }.toDouble()) missList.add((stages.count{e-> e == i }).toDouble()/stages.count{e-> e >= i }.toDouble()) } missList.sort() missList.reverse() for(i in 0 .. missList.size-1){ for(j in 1 .. missList.size){ if(missList[i]==miss.get(j)){ answer.add(j) miss.remove(j) break } } } return answer.toIntArray() } }
저의 현재 실력으로 푼 문제 답안이며, 가장 좋은 코드는 아닐 수 있으며, 코틀린을 공부하면서 추가적으로 알게 된 개념이 있어 다시 풀 경우 추가적으로 코드를 작성 할 수 있도록 하겠습니다.
'프로그래머스' 카테고리의 다른 글
모의고사 (0) 2022.09.10 체육복 (0) 2022.09.10 [카카오 인턴] 키패드 누르기 (0) 2022.09.09 두 개 뽑아서 더하기 (0) 2022.09.09 3진법 뒤집기 (0) 2022.09.09