티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr

 

import Foundation

func solution(_ N:Int, _ stages:[Int]) -> [Int] {
    let stages = stages.sorted(by: <)
    var answer: [Float] = []
    let cnt = stages.count
    for i in 1...N {
        if let first: Int = stages.firstIndex(of: i) {
            let last: Int = stages.lastIndex(of: i) ?? cnt
            answer.append((Float(last-first+1))/(Float(cnt-first)))
        } else {
            answer.append(0)
        }
        
    }
    return answer.enumerated().sorted(by: {
            if $0.1 != $1.1 {
                return $0.1 > $1.1
            }
            return $0.0 < $1.0
        }).map{ $0.0+1 }
}
댓글