Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมค้นหาแท่งไอศครีมสูงสุดใน Python


สมมติว่าเรามีค่าใช้จ่ายอาร์เรย์ที่มี 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