Menu
CoddyTech

Minimum Cost of Ropes

FacileTasGloutonpython iconjava iconcpp iconc iconjs icon+10

Tu as des cordes, et ropes[i] est la longueur de la corde i. Tu peux joindre deux cordes quelconques pour en former une seule dont la longueur est la somme des deux, et cette jonction coûte cette même somme. Tu continues à les joindre jusqu’à ce qu’il ne reste qu’une seule corde.

Écris une fonction nommée minCostRopes qui renvoie le coût total minimal pour joindre toutes les cordes en une seule, ou 0 s’il n’y a qu’une seule corde au départ.

Fonction

minCostRopes(ropes: integer-array) → integer
ropesinteger-array
la longueur de chaque corde
Renvoieinteger
le coût total minimal pour réunir toutes les cordes en une seule

Contraintes

  • 1 ≤ ropes.length ≤ 104
  • 1 ≤ ropes[i] ≤ 100
  • La réponse tient dans un entier signé sur 32 bits.

Exemples

Entrée
ropes = [5, 2, 8, 3]
Sortie
33
Explication
Joignez 2 et 3 pour obtenir 5, les deux cordes de longueur 5 pour obtenir 10, puis 8 et 10 pour obtenir 18. Le total est 5 + 10 + 18 = 33.
challenge icon

Pour aller plus loin

Supposons qu’un raccord puisse joindre jusqu’à trois cordes et coûte la somme de leurs longueurs. Comment la règle gloutonne change-t-elle lorsque le nombre de cordes ne se répartit pas équitablement ?

Réinitialiser le code
def minCostRopes(ropes):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Argument

ropes = [5, 2, 8, 3]

Résultat attendu

33