일단... 박고 본 내 코드
var userLevel = stages.sorted()
var stageCleared = Array(repeating: 0, count: N+1)
for i in 0..<userLevel.count {
if userLevel[i] != 1 {
for j in 1..<userLevel[i] {
stageCleared[j] += 1
}
}
}
var dict : [Int:Int] = [:]
for i in 0...N {
dict[i] = stageCleared[i]
}
var failRate : [Int:Double] = [:] // stage : failRate
stageCleared[0] = stages.count
for i in 1...N {
if stageCleared[i-1] == 0 {
failRate[i] = 0
} else {
failRate[i] = (1 - (Double(stageCleared[i])) / Double(stageCleared[i-1]))
}
}
let result = failRate.sorted {
if $0.1 == $1.1 {
return $0 < $1
} else {
return $0.1 > $1.1
}
}
var returnArr : [Int] = []
for i in 0..<result.count {
returnArr.append(result[i].key)
}
return returnArr
다행히 시간초과 없이 해결..
다른사람들 짧은 풀이 보면 그저 암울하지만..
나도 나중엔 저러겠지 싶다
'알고리즘문풀 with SWIFT > Programmers' 카테고리의 다른 글
swift ) 프로그래머스 - 행렬의 덧셈 (0) | 2022.05.23 |
---|---|
swift ) 프로그래머스 - x만큼 간격이 있는 n개의 숫자 (0) | 2022.05.23 |
swift ) 프로그래머스 - 직사각형 별찍기 (0) | 2022.05.23 |
swift ) 프로그래머스 - 모의고사 (수포자) (0) | 2022.05.07 |
swift ) 프로그래머스 - 체육복 (0) | 2022.05.07 |