잡초의 일지

[Swift] 프로그래머스 | 코딩테스트 연습 -> 2019 KAKAO BLIND RECRUITMENT -> 실패율 본문

[코딩] 문제풀기/Swift

[Swift] 프로그래머스 | 코딩테스트 연습 -> 2019 KAKAO BLIND RECRUITMENT -> 실패율

JabCho 2021. 2. 20. 07:07
728x90
반응형
SMALL
func solution(_ N:Int, _ stages:[Int]) -> [Int] {

    var fail = [[Double]]()
    var last = 0
    var numerator:Double       // 분자
    var denominator:Double     // 분모
    var current = stages.count
    var i = 0
    for _ in 1...N {
        var count = 0
        for stage in stages {
            if (i+1 == stage){
                count += 1
            }
        }
        numerator = Double(count)
        denominator = Double(current - last)
        fail.append([Double(numerator/denominator), Double(i+1)])   
        last = Int(numerator)
        current = Int(denominator)
        i += 1
    }
    fail.sort { $0[0] > $1[0] }
    var result: Array<Int> = []
    for failStage in fail {
        result.append(Int(failStage.last!))
    }
    return result
}

문제를 이해하는데 조금 어려움이 있었지만, 이해를 하고 나니 어떻게 풀지 생각이 그려졌다.

너무 많은 변수들을 마구잡이로 사용한것같은 기분이 든다. 특히 count는 그냥 numerator로 사용해도 될 듯 하다.

 

실행 시간이 오래 걸려서 내가 간단하게 짜지 못했나 라는 생각이 들었다.

728x90
반응형
LIST
Comments