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

โปรแกรม Python หาเงินจากการขายรองเท้า


สมมติว่าในร้านรองเท้าไม่มีรองเท้าที่มีขนาดแตกต่างกันในอาร์เรย์ที่เรียกว่า size และรายการคู่อื่นสำหรับลูกค้า m ที่เรียกว่าความต้องการ โดยที่ demand[i] ประกอบด้วย (shoe_size, money) ดังนั้นลูกค้าที่มีความต้องการ i มี ความต้องการรองเท้าที่มีขนาดรองเท้า_ขนาดและเขา/เธอสามารถจ่ายเงินตามจำนวนที่กำหนดได้ เราต้องหาเงินที่เจ้าของร้านจะหาได้จากการขายรองเท้าเหล่านี้

ดังนั้นหากอินพุตเป็นเหมือนรองเท้า =[2,3,4,5,6,8,7,6,5,18] ความต้องการ =[(6,55), (6,45), (6,55) , (4,40), (18,60), (10,50)] จากนั้นผลลัพธ์จะเป็น 200 เพราะ

  • คนแรกจะซื้อรองเท้าขนาด 6 ในราคา 55

  • คนที่สองจะซื้อรองเท้าขนาด 6 ในราคา 45

  • ไม่มีรองเท้าที่มีขนาด 6 ในสต็อก

  • คนที่สี่จะซื้อรองเท้าขนาด 4 ในราคา 40

  • คนที่ห้าจะซื้อรองเท้าที่มีขนาด 18 ในราคา 60

  • ตัวที่หกจะไม่ได้รองเท้าเพราะไม่มีรองเท้าขนาด 10


รายได้ทั้งหมด 55 + 45 + 40 + 60 =200


เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • n :=ขนาดความต้องการ
  • ขนาด :=แผนที่ที่มีความถี่ของรองเท้าตามขนาด
  • รับ :=0
  • สำหรับฉันในช่วง 0 ถึง n - 1 ทำ
    • (sz, ราคา) :=ดีมานด์[i]
    • ถ้ารองเท้าที่มีขนาด sz มีขนาดอยู่แล้ว
      • ขนาด[sz] :=ขนาด[sz] - 1
      • รับ :=รับ + ​​ราคา
  • ผลตอบแทนที่ได้รับ

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น

จากคอลเลกชันที่นำเข้า Counterdef แก้ปัญหา (รองเท้า, ความต้องการ):n =len (ความต้องการ) ขนาด =เคาน์เตอร์ (รองเท้า) รับ =0 สำหรับฉันในช่วง (n):sz, ราคา =ความต้องการ [i] ถ้าขนาด[sz] :size[sz] -=1 earn +=price return earnshoes =[2,3,4,5,6,8,7,6,5,18]ดีมานด์ =[(6,55), (6,45) , (6,55), (4,40), (18,60), (10,50)]พิมพ์(แก้(รองเท้า,ความต้องการ))

อินพุต

<ก่อน>[2,3,4,5,6,8,7,6,5,18], [(6,55), (6,45), (6,55), (4,40), (18,60),(10,50)]

ผลลัพธ์

200