Menu
CoddyTech

Rod Cutting Problem

Kamu memiliki batang dengan panjang n, dengan n = prices.length. Potongan dengan panjang k dijual seharga prices[k-1]. Kamu boleh memotong batang menjadi potongan-potongan dengan panjang bilangan bulat sebanyak yang kamu mau, atau menjualnya utuh. Kembalikan jumlah uang terbanyak yang bisa kamu dapatkan dengan menjual seluruh batang.

Fungsi

cutRod(prices: integer-array) → integer
pricesinteger-array
prices[k-1] adalah harga potongan dengan panjang k; panjang batang tersebut adalah prices.length
Mengembalikaninteger
uang terbanyak yang bisa diperoleh seluruh batang

Batasan

  • 1 ≤ prices.length ≤ 1000
  • 1 ≤ prices[i] ≤ 105

Contoh

Input
prices = [2, 5, 7, 8]
Output
10
Penjelasan
Dua potongan dengan panjang 2 dijual seharga 5 + 5 = 10. Menjual batang secara utuh menghasilkan 8, sedangkan satu potongan sepanjang 1 ditambah satu potongan sepanjang 3 menghasilkan 2 + 7 = 9.
challenge icon

Pertanyaan lanjutan

Bagaimana jika kamu boleh memotong batang paling banyak m kali? Apa yang perlu diketahui setiap entri tabel dalam kasus itu?

Reset kode
def cutRod(prices):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

prices = [2, 5, 7, 8]

Output yang diharapkan

10