สมมติว่าเรามีค่าใช้จ่ายอาร์เรย์ที่มี n องค์ประกอบ โดยที่ cost[i] คือราคาของแท่งไอศกรีม ith เป็นเหรียญ ตอนแรกเรามีเหรียญ c ไว้ใช้จ่าย และเราต้องการซื้อแท่งไอศกรีมให้ได้มากที่สุด เราต้องหาจำนวนแท่งไอศกรีมสูงสุดที่เราซื้อด้วยเหรียญ c ได้
ดังนั้น ถ้า input เท่ากับ cost =[3,1,4,5,2], c =10 แล้ว output จะเป็น 4 เพราะเราสามารถซื้อไอศกรีมแท่งที่ดัชนี 0,1,2,4 ได้ทั้งหมด ราคา 3 + 1 + 4 + 2 =10.
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
จัดเรียงรายการค่าใช้จ่าย
-
ผม:=0
-
ในขณะที่ i <ขนาดของต้นทุนและ c>=ต้นทุน[i] ทำ
-
c :=c - ค่าใช้จ่าย[i]
-
ผม :=ผม+1
-
-
กลับมา
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(costs, c): costs.sort() i=0 while(i<len(costs) and c >= costs[i]): c = c-costs[i] i=i+1 return i costs = [3,1,4,5,2] c = 10 print(solve(costs, c))
อินพุต
[3,1,4,5,2], 10
ผลลัพธ์
4