Skip to content

Instantly share code, notes, and snippets.

@denpazakura
Created January 1, 2024 14:26
Show Gist options
  • Save denpazakura/a6e6f719265a56b74c8e4e0160f65005 to your computer and use it in GitHub Desktop.
Save denpazakura/a6e6f719265a56b74c8e4e0160f65005 to your computer and use it in GitHub Desktop.
Cookies problem
func cookies(k: Int, A: [Int]) -> Int {
var sorted = A.sorted()
var iterations = 0
while sorted.count >= 2 && sorted[0] < k {
let leastSweet = sorted.removeFirst()
let secondLeastSweet = sorted.removeFirst()
let combined = leastSweet + 2 * secondLeastSweet
insertAndSort(combined, &sorted)
iterations += 1
}
return (sorted.isEmpty || sorted[0] < k) ? -1 : iterations
}
func insertAndSort(_ value: Int, _ array: inout [Int]) {
array.insert(value, at: 0)
array.sort()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment