Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में एक ट्रक पर रखी जा सकने वाली अधिकतम इकाइयों को खोजने का कार्यक्रम

मान लीजिए कि हमारे पास बॉक्स टाइप नामक 2 डी सरणी के रूप में दर्शाए गए बॉक्स का एक सेट है, जहां बॉक्स टाइप्स [i] में दो तत्व होते हैं [टाइप i के बॉक्स की संख्या, टाइप i के प्रति बॉक्स में इकाइयों की संख्या]। अब हमारे पास एक और मूल्य k भी है, जो उस ट्रक पर रखे जा सकने वाले बक्सों की अधिकतम संख्या है। हम ट्रक पर डालने के लिए किसी भी बॉक्स का चयन कर सकते हैं जब तक कि बक्सों की संख्या k को पार नहीं करती है। हमें ट्रक पर रखी जा सकने वाली इकाइयों की अधिकतम कुल संख्या ज्ञात करनी है।

इसलिए, यदि इनपुट बॉक्सटाइप्स =[[2,4], [3,3], [4,2]], के =6 जैसा है, तो आउटपुट 19 होगा, क्योंकि वहाँ हैं

  • टाइप 1 के 2 बॉक्स और प्रत्येक में 4 इकाइयां हैं

  • टाइप 2 के 3 बॉक्स और प्रत्येक में 3 इकाइयाँ हैं

  • प्रकार 3 के 4 बक्से और प्रत्येक में 2 इकाइयाँ होती हैं

k =6 के रूप में, हम टाइप 1 और 2 के सभी बॉक्स और टाइप 3 का केवल एक बॉक्स ले सकते हैं, इसलिए (2*4) + (3*3) + 2 =8 + 9 +2 =19 आइटम होंगे ।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • सॉर्ट बॉक्स प्रत्येक बॉक्स में मौजूद वस्तुओं की संख्या के आधार पर टाइप करें

  • कुल:=0, भरें:=0

  • बॉक्स टाइप में प्रत्येक i के लिए, करें

    • यदि भरण + i[0] <=k, तो

      • भरें:=भरें + मैं [0]

      • कुल:=कुल + मैं [0] * मैं [1]

    • अन्यथा,

      • कुल :=कुल + (k - भरण) * i[1]

      • लूप से बाहर आएं

  • कुल वापसी

उदाहरण (पायथन)

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def solve(boxTypes, k):
   boxTypes.sort(key = lambda x : x[1], reverse = True)
   total = 0
   fill = 0
   for i in boxTypes:
      if fill + i[0] <= k:
         fill += i[0]
         total += i[0] * i[1]
      else:
         total += (k - fill) * i[1]
         break
   return total

boxTypes = [[2,4],[3,3],[4,2]]
k = 6
print(solve(boxTypes, k))

इनपुट

[[2,4],[3,3],[4,2]], 6

आउटपुट

19

  1. पायथन में हम अधिक से अधिक लोगों को खुश करने का कार्यक्रम ढूंढ सकते हैं

    मान लीजिए कि हमारे पास एक सूची ग्राहक और एक अन्य सूची मूड है, ये दोनों समान लंबाई के हैं, हमारे पास एक और पूर्णांक k है। अब प्रत्येक मिनट पर, ग्राहक [i] स्टोर पर लोगों की संख्या आती है और जब मूड [i] =1 होता है, तो यह इंगित करता है कि ग्राहक खुश हैं और जब मूड [i] =0, तो वे दुखी होते हैं। हम k मूड के

  1. पायथन में लाभ को धारण और बेचकर हम अधिकतम लाभ प्राप्त करने का कार्यक्रम कर सकते हैं

    मान लीजिए कि हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है, जो कालानुक्रमिक क्रम में किसी कंपनी के स्टॉक की कीमतों का प्रतिनिधित्व कर रहा है। हम प्रति दिन स्टॉक के अधिकतम एक शेयर खरीद सकते हैं, लेकिन आप कई शेयरों पर पकड़ बना सकते हैं और किसी भी दिन स्टॉक बेच सकते हैं। वह अधिकतम लाभ लौटाएं जो

  1. पायथन में अधिकतम भवन ऊंचाई खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक मान n है और जोड़े की एक और सूची है जिसे प्रतिबंध कहा जाता है। हम एक शहर में नई इमारतें बनाना चाहते हैं। लेकिन कुछ प्रतिबंध हैं। हम एक लाइन में बना सकते हैं और इमारतों को 1 से n तक लेबल किया जाता है। प्रतिबंधों के दो पैरामीटर हैं, इसलिए प्रतिबंध [i] =(id_i, max_height_i) इंग