문제
내 정답 코드
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만큼의 개수만큼만 배열로 반환한다.
배운 기술
'프로그래머스 (Swift) > lv 1' 카테고리의 다른 글
[lv1] 나머지가 1이 되는 수 찾기 (0) | 2024.07.14 |
---|---|
[lv1] 옹알이 (2) (0) | 2024.07.07 |
[lv1] 둘만의 암호 (0) | 2024.06.25 |
[lv1] 없는 숫자 더하기 (0) | 2024.06.25 |
[lv1] 덧칠하기 (0) | 2024.06.16 |