프로그래머스 (Swift)/lv 1
[lv1] 명예의 전당 (1)
은더기
2024. 7. 7. 17:19
문제
내 정답 코드
import Foundation
func solution(_ k:Int, _ score:[Int]) -> [Int] {
var kArr:[Int] = []
var result:[Int] = []
for value in score {
kArr = calK(k: k, score: value, kArr: kArr)
result.append(kArr.last!)
}
return result
}
func calK(k: Int, score: Int, kArr: [Int]) -> [Int] {
var kArr = kArr
kArr.append(score)
kArr.sort(by: { $0 > $1 })
if kArr.count > k {
return Array(kArr[0..<k])
} else {
return kArr
}
return kArr
}
#
1. kArr에 점수를 계속 쌓으면서 마지막 값을 result에 담아준다.
2. 이 때, kArr을 쌓을 때마다 내림차순으로 정렬하고
3. kArr의 개수가 k보다 크면 k만큼의 개수만큼만 배열로 반환한다.
배운 기술