문제
내 정답 코드
import Foundation
func solution(_ k:Int, _ m:Int, _ score:[Int]) -> Int {
var score = score
var box: [[Int]] = []
var result = 0
score = score.sorted().reversed()
for i in stride(from: 0, to: score.count, by: m) {
var group: [Int] = []
for j in i..<min(i + m, score.count) {
group.append(score[j])
}
box.append(group)
}
box = box.filter { $0.count == m }
for box in box {
let sum = box.min()! * m
result += sum
}
return result
}
#
1. 한 박스의 과일들 중 낮은 점수로 계산하기 때문에, 같은 점수의 과일들이 있으면 최대한 모아야 한다.
2. 과일을 내림 차순으로 정렬하고 m개 만큼 포장해간다. (stride를 사용하여 m의 주기로 반복문)
3. m개를 못 채운 상자들은 버려주고
4. 상자안의 가장 낮은 점수로 계산하여 result에 더해준다.
배운 기술
1. stride()
https://developer.apple.com/documentation/swift/stride(from:to:by:)
https://developer.apple.com/documentation/swift/stride(from:through:by:)
'프로그래머스 (Swift) > lv 1' 카테고리의 다른 글
[lv1] 없는 숫자 더하기 (0) | 2024.06.25 |
---|---|
[lv1] 덧칠하기 (0) | 2024.06.16 |
[lv1] 콜라 문제 (0) | 2024.06.12 |
[lv1] 삼총사 (0) | 2024.06.12 |
[lv1] 추억 점수 (0) | 2024.06.12 |