무게 제한과 무게를 입력받고, 내림차순으로 정렬하자. 가장 제한이 큰 배보다 무게가 크다면 애초에 싣지 못하는 짐이다. 현재 시점의 무게 제한은 "가장 큰" 배이므로, 1분에 N개의 크레인을 써서 앞에서부터 실어나가자.
import Foundation
let N = Int(String(readLine()!))!
var weightLimits = Array(readLine()!.split(separator: " ").map{Int(String($0))!})
let M = Int(String(readLine()!))!
var weights = Array(readLine()!.split(separator: " ").map{Int(String($0))!})
weightLimits.sort(by: >)
weights.sort(by: >)
if weightLimits[0] < weights[0] {
print(-1)
} else {
var total = 0
while weights.isEmpty == false {
for limit in weightLimits {
for idx in 0..<weights.count {
if limit >= weights[idx] {
weights.remove(at: idx)
break
}
}
}
total += 1
}
print(total)
}