[코딩] 문제풀기/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