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

โปรแกรมค้นหาจำนวนจรวดขั้นต่ำที่จำเป็นสำหรับการช่วยเหลือใน Python


สมมติว่าเรามีรายการตัวเลขที่เรียกว่าน้ำหนัก ซึ่งแสดงถึงน้ำหนักของประชาชน และขีดจำกัดของค่าจะกำหนดขีดจำกัดน้ำหนักของเรือจรวดหนึ่งลำ ตอนนี้จรวดแต่ละลำสามารถรองรับคนได้มากที่สุดสองคน เราต้องหาจำนวนขั้นต่ำของเรือจรวดที่จะช่วยทุกคนสู่โลกได้

ดังนั้นหากอินพุตเป็นเหมือนน้ำหนัก =[300, 400, 300] ขีด จำกัด =600 ดังนั้นเอาต์พุตจะเป็น 2 เนื่องจากต้องใช้เรือจรวดหนึ่งลำเพื่อนำคนสองคนที่มีน้ำหนักตัวละ 300 และอีกลำรับ ผู้ที่มีน้ำหนัก 400.

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

  • จัดเรียงรายการน้ำหนัก

  • cnt :=0

  • ในขณะที่ตุ้มน้ำหนักไม่ว่างเปล่าให้ทำ

    • x :=ลบองค์ประกอบสุดท้ายออกจากน้ำหนัก

    • ถ้าน้ำหนักไม่ว่างเปล่าและ weights[0] <=จำกัด − x แล้ว

      • ลบองค์ประกอบแรกออกจากน้ำหนัก

    • cnt :=cnt + 1

  • ส่งคืน cnt

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

ตัวอย่าง(Python)

class Solution:
def solve(self, weights, limit):
   weights.sort()
   cnt = 0
   while weights:
      x = weights.pop()
      if weights and weights[0] <= limit - x:
         weights.pop(0)
      cnt += 1
   return cnt
ob = Solution()
weights = [300, 400, 300]
limit = 600
print(ob.solve(weights, limit))

อินพุต

[300, 400, 300], 600

ผลลัพธ์

2