Menu
CoddyTech

Minimum Cost of Ropes

Tienes algunas cuerdas, y ropes[i] es la longitud de la cuerda i. Puedes unir dos cuerdas cualesquiera para formar una sola cuerda cuya longitud sea la suma de las dos, y esa unión cuesta esa misma suma. Sigue uniendo cuerdas hasta que quede una sola.

Escribe una función llamada minCostRopes que devuelva el costo total mínimo de unir todas las cuerdas en una sola, o 0 si solo hay una cuerda desde el principio.

Función

minCostRopes(ropes: integer-array) → integer
ropesinteger-array
la longitud de cada cuerda
Devuelveinteger
el costo total mínimo de unir todas las cuerdas en una sola

Restricciones

  • 1 ≤ ropes.length ≤ 104
  • 1 ≤ ropes[i] ≤ 100
  • La respuesta cabe en un entero con signo de 32 bits.

Ejemplos

Entrada
ropes = [5, 2, 8, 3]
Salida
33
Explicación
Une 2 y 3 para obtener 5, las dos cuerdas de longitud 5 para obtener 10, después 8 y 10 para obtener 18. El total es 5 + 10 + 18 = 33.
challenge icon

Para ir más allá

Supongamos que una unión puede atar hasta tres cuerdas y cuesta la longitud total de estas. ¿Cómo cambia la regla voraz cuando el número de cuerdas no se puede dividir equitativamente?

Restablecer código
def minCostRopes(ropes):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

ropes = [5, 2, 8, 3]

Salida Esperada

33