시간초과 문제
import Foundation
func solution(_ N:Int, _ stages:[Int]) -> [Int] {
let failedList: [Int] = Array(1...N).map { index in
stages.filter { $0 == index }.count
}
let challengedList: [Int] = Array(1...N).map { index in
stages.filter { $0 >= index }.count
}
var list: [(Int,Double)] = Array(1...N).map { index in
let failed = failedList[index-1]
let challenged = challengedList[index-1]
let failedRate = Double(Double(failed) / Double(challenged))
return (index, failedRate)
}
list.sort(by: { $0.1 > $1.1 })
return list.map { $0.0 }
}
시간초과 해결문제
import Foundation
func solution(_ N:Int, _ stages:[Int]) -> [Int] {
var failedList: [Int] = .init(repeating: 0, count: N + 1)
for stage in stages {
if stage <= N {
failedList[stage] += 1
}
}
var challengedList: [Int] = .init(repeating: 0, count: N + 1)
var players = stages.count
for i in 1...N {
challengedList[i] = players
players -= failedList[i]
}
var list: [(Int,Double)] = Array(1...N).map { index in
let failed = failedList[index]
let challenged = challengedList[index]
let failedRate = Double(Double(failed) / Double(challenged))
return (index, failedRate)
}
list.sort(by: { $0.1 > $1.1 })
return list.map { $0.0 }
}
'Algorithm > programmers' 카테고리의 다른 글
프로그래머스 - 비밀지도 (카카오 블라인드 채용) (0) | 2024.09.26 |
---|---|
프로그래머스 - 다트 게임 (카카오 블라인드 채용) (0) | 2024.09.26 |
프로그래머스 - 크레인 인형뽑기 게임 (2019 카카오 개발자 겨울 인턴 문제) (0) | 2024.09.15 |
프로그래머스 - 숫자 문자열과 영단어 (2021 카카오 채용연계형 인턴쉽) (0) | 2024.09.14 |
프로그래머스 - 성격 유형 검사하기 (카카오 인턴쉽) (0) | 2024.09.11 |