알고리즘문풀 with SWIFT/Programmers

swift ) 프로그래머스 - 카카오 2019 블채 레벨1 - 실패율

유사앱등이 2022. 5. 6. 19:41

 

일단... 박고 본 내 코드

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

 

 

다행히 시간초과 없이 해결..

다른사람들 짧은 풀이 보면 그저 암울하지만.. 

나도 나중엔 저러겠지 싶다