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

Python में गोदाम में कितने बॉक्स रखे जा सकते हैं, इसका प्रोग्राम

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

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

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

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

Python में गोदाम में कितने बॉक्स रखे जा सकते हैं, इसका प्रोग्राम

हल करने के चरण

  1. boxes सूची को अवरोही क्रम में सॉर्ट करें
  2. l := 0
  3. r := godown का आकार - 1
  4. bi := 0
  5. ret := 0
  6. जब bi < boxes का आकार और l <= r, तब:
    • यदि godown[l] > godown[r], तो:
      • यदि boxes[bi] <= godown[l], तो: ret := ret + 1, l := l + 1
      • अन्यथा, यदि boxes[bi] <= godown[r], तो: ret := ret + 1, r := r - 1
    • bi := bi + 1
  7. ret वापस करें

उदाहरण (Python)

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. Python में कितने क्यूब कटे हैं, यह खोजने का प्रोग्राम Python में कितने क्यूब कटे हैं, यह खोजने का प्रोग्राम

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

  1. पायथन में हम कितना कुल वर्षा जल पकड़ सकते हैं यह खोजने का प्रोग्राम पायथन में हम कितना कुल वर्षा जल पकड़ सकते हैं यह खोजने का प्रोग्राम

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

  1. पायथन में ट्री को दो ट्री में विभाजित करने के तरीकों की गिनती का प्रोग्राम पायथन में ट्री को दो ट्री में विभाजित करने के तरीकों की गिनती का प्रोग्राम

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