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

पायथन में गोदाम में कितने बक्से रखे जा सकते हैं यह पता लगाने के लिए कार्यक्रम

मान लीजिए, हमारे पास दो सरणियाँ हैं जिनमें पूर्णांक हैं। एक सूची में कुछ इकाई चौड़ाई वाले बक्सों की ऊँचाई होती है और दूसरी सूची में गोदाम में कमरों की ऊँचाई होती है। कमरों की संख्या 0...n है, और कमरों की ऊंचाई सरणी गोदाम में उनके संबंधित सूचकांक में प्रदान की जाती है। हमें पता लगाना है कि कितने बक्सों को गोदाम में धकेला जा सकता है। कुछ बातों को ध्यान में रखना होगा,

  • बक्सों को एक दूसरे के ऊपर नहीं रखा जा सकता।

  • बक्सों का क्रम बदला जा सकता है।

बक्सों को किसी भी तरफ से गोदाम में डाल दिया जाता है, यह बाएं या दाएं से हो सकता है। यदि कोई बॉक्स कमरे की ऊंचाई से लंबा है, तो उसके दाईं ओर के सभी बक्सों के साथ बॉक्स को गोदाम में नहीं धकेला जा सकता है।

इसलिए, यदि इनपुट बॉक्स =[4, 5, 6], गोदाम =[4, 5, 6, 7] की तरह है, तो आउटपुट 3 होगा इनपुट के रूप में दिए गए तीनों बॉक्स को गोदाम में रखा जा सकता है।

पायथन में गोदाम में कितने बक्से रखे जा सकते हैं यह पता लगाने के लिए कार्यक्रम

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

  • सूची बक्सों को अवरोही क्रम में क्रमबद्ध करें

  • एल :=0

  • r :=गोदाम का आकार - 1

  • द्वि:=0

  • रिट:=0

  • जबकि द्वि <बक्से का आकार और l <=r, करते हैं

    • अगर गोदाम [एल]> गोदाम [आर], तो

      • अगर बक्से [द्वि] <=गोदाम [एल], तो

        • रिट:=रिट + 1

        • एल :=एल + 1

      • अन्यथा,

        • अगर बक्से [द्वि] <=गोदाम [आर], तो

          • रिट:=रिट + 1

          • आर:=आर - 1

      • द्वि :=द्वि + 1

  • वापसी रिट

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

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

def solve(boxes, godown):
   boxes.sort(reverse = True)

   l, r = 0, len(godown) - 1
   bi, ret = 0, 0
   while bi < len(boxes) and l <= r:
      if godown[l] > godown[r]:
         if boxes[bi] <= godown[l]:
            ret += 1
            l += 1
      else:
         if boxes[bi] <= godown[r]:
            ret += 1
            r -= 1
      bi += 1

   return ret

print(solve([4, 5, 6], [4, 5, 6, 7]))

इनपुट

[4, 5, 6], [4, 5, 6, 7]

आउटपुट

3

  1. कितने क्यूब्स काटे गए यह पता लगाने के लिए पायथन प्रोग्राम

    मान लीजिए, a, b, और c आयामों के कई घन हैं, और उनका उपयोग करके आयाम axbxc का एक नया बॉक्स बनाया जाता है। ए, बी, और सी जोड़ीदार सह-अभाज्य हैं; gcd(a, b) =gcd(b,c) =gcd(c, d) =1. हमें बॉक्स को एक ही स्लाइस से दो टुकड़ों में काटना है जैसा कि चित्र में दिखाया गया है। हमें यह पता लगाना है कि क्या डिब्बे क

  1. प्रोग्राम यह पता लगाने के लिए कि हम पायथन में कुल कितनी बारिश पकड़ सकते हैं

    मान लीजिए कि हमारे पास n गैर-ऋणात्मक पूर्णांकों की एक सरणी है। ये उस ऊंचाई का प्रतिनिधित्व कर रहे हैं जहां प्रत्येक बार की चौड़ाई 1 है, हमें गणना करनी होगी कि बारिश के बाद यह कितना पानी पकड़ने में सक्षम है। तो नक्शा इस तरह होगा - यहां हम देख सकते हैं कि 8 नीले बॉक्स हैं, इसलिए आउटपुट 8 होगा। इसे

  1. पायथन में हम पेड़ को दो पेड़ों में कितने तरीकों से विभाजित कर सकते हैं, यह गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास 0, 1 और 2 मान वाले बाइनरी ट्री हैं। रूट में कम से कम एक 0 नोड और एक 1 नोड है। अब मान लीजिए कि एक ऑपरेशन है जहां हम पेड़ में एक किनारे को हटाते हैं और पेड़ दो अलग-अलग पेड़ बन जाते हैं। हमें एक किनारे को हटाने के कई तरीके खोजने होंगे जैसे कि दो पेड़ों में से किसी में भी 0 नोड और