Skip to main content

1578.js

/** ------------------------------------------------------------------------------
*
* 1578. Minimum Time to Make Rope Colorful
* Topics: DP, Greedy
* https://leetcode.com/problems/minimum-time-to-make-rope-colorful/?envType=daily-question&envId=2025-11-03
*
------------------------------------------------------------------------------ */
/**
* @param {string} colors
* @param {number[]} neededTime
* @return {number}
*/
var minCost = function (colors, neededTime) {
const n = colors.length
let res = 0
let i = 0
while (i < n) {
let j = i
let largest = neededTime[j]
let sum = neededTime[j]
while (j + 1 < n && colors[j] === colors[j + 1]) {
j += 1
largest = Math.max(largest, neededTime[j])
sum += neededTime[j]
}
res += sum - largest
i = j + 1
}
return res
}

console.log(minCost("abaac", [1, 2, 3, 4, 5]))