Menu
CoddyTech

Minimum Cost of Ropes

יש לך כמה חבלים, ו-ropes[i] הוא האורך של חבל i. אפשר לחבר כל שני חבלים לחבל אחד שאורכו סכום האורכים שלהם, ועלות החיבור היא אותו הסכום. ממשיכים לחבר עד שנותר חבל אחד.

כתבו פונקציה בשם minCostRopes שמחזירה את העלות הכוללת הקטנה ביותר של חיבור כל החבלים לחבל אחד, או 0 אם מלכתחילה יש רק חבל אחד.

פונקציה

minCostRopes(ropes: integer-array) → integer
ropesinteger-array
האורך של כל חבל
מחזירהinteger
העלות הכוללת הקטנה ביותר של חיבור כל החבלים לחבל אחד

אילוצים

  • 1 ≤ ropes.length ≤ 104
  • 1 ≤ ropes[i] ≤ 100
  • התשובה נכנסת למספר שלם עם סימן בן 32 סיביות.

דוגמאות

קלט
ropes = [5, 2, 8, 3]
פלט
33
הסבר
חברו את 2 ואת 3 לקבלת 5, את שני החבלים שאורכם 5 לקבלת 10, ואז את 8 ואת 10 לקבלת 18. הסכום הכולל הוא 5 + 10 + 18 = 33.
challenge icon

שאלת המשך

נניח שחיבור יכול לקשור עד שלושה חבלים ועלותו היא כאורך הכולל שלהם. איך משתנה הכלל הגרידי כאשר מספר החבלים אינו מתחלק באופן שווה?

איפוס הקוד
def minCostRopes(ropes):
    # יש לכתוב כאן קוד

בדיקה #1

בדיקה #2

בדיקה #3

ארגומנט

ropes = [5, 2, 8, 3]

הפלט הצפוי

33