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

Python में फूड पैकेट पाने वाले लोगों की संख्या गिनने का प्रोग्राम


मान लीजिए एक कॉन्फ्रेंस में दो प्रकार के लोग हैं। पहले प्रकार के लोग शाकाहारी लंच पसंद करते हैं, और दूसरे प्रकार के लोग मांसाहारी लंच पसंद करते हैं। लेकिन पैकेट की संख्या सीमित है, और यदि शाकाहारियों को मांसाहारी पैकेट मिलता है या इसके विपरीत; वे वह पैकेट नहीं लेंगे और अपने पसंदीदा पैकेट मिलने तक इंतजार करेंगे। तो, दो अलग-अलग प्रकार के पैकेट और लोगों को 0 शाकाहारी के लिए और 1 मांसाहारी के लिए दर्शाया गया है। अब हमें दो ऐरे दिए गए हैं, एक में n संख्या में फूड पैकेट हैं जिन्हें 0 और 1 से दर्शाया गया है और दूसरे ऐरे में m संख्या में लोगों की कतार है, और उनकी प्राथमिकताएं 0 और 1 से दर्शाई गई हैं। तो, यदि एक व्यक्ति को उनका पसंदीदा पैकेट नहीं मिलता, तो वे कतार के अंत में फिर से प्रवेश करते हैं और अपने पसंदीदा पैकेट की प्रतीक्षा करते हैं। तो, हमें बिना फूड पैकेट वाले लोगों की संख्या ढूंढनी है ताकि हम उनके पसंदीदा पैकेट की व्यवस्था कर सकें।

उदाहरण के लिए, यदि इनपुट है people = [0,1,1,0], packets = [0, 1, 0, 0], तो आउटपुट 1 होगा।

तो दो लोग मांसाहारी भोजन पसंद कर रहे हैं और केवल एक मांसाहारी पैकेट है। लाइन में पहला व्यक्ति जो मांसाहारी पसंद करता है वह उस पैकेट को प्राप्त करता है और दूसरा व्यक्ति प्रतीक्षा करता रहता है क्योंकि कोई अन्य मांसाहारी पैकेट नहीं है। तो, आउटपुट 1 है।

समाधान के चरण

  1. temp_arr := [0, 0] (0 और 0 मान वाली नई सूची)
  2. people में प्रत्येक person के लिए:
    • temp_arr[person] += 1
  3. k := 0
  4. while k < len(packets):
    • यदि temp_arr[packets[k]] > 0:
      • temp_arr[packets[k]] -= 1
    • अन्यथा:
      • लूप से बाहर निकलें
    • k += 1
  5. len(packets) - k वापस करें

उदाहरण

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

def solve(people, packets):
    temp_arr = [0, 0]
    for person in people:
        temp_arr[person] += 1
    k = 0
    while k < len(packets):
        if temp_arr[packets[k]] > 0:
            temp_arr[packets[k]] -= 1
        else:
            break
        k += 1
    return len(packets) - k

print(solve([0,1,1,0], [0, 1, 0, 0]))

इनपुट

[0,1,1,0], [0, 1, 0, 0]

आउटपुट

1
  1. Python से सबट्री में समान लेबल वाले नोड्स की संख्या कैसे ढूंढें? Python से सबट्री में समान लेबल वाले नोड्स की संख्या कैसे ढूंढें?

    रूटेड ट्री में प्रत्येक नोड के लिए, उसके सबट्री में उसी लेबल वाले नोड्स की संख्या ढूंढें (लेबल्स लोअरकेस लेटर्स)। एल्गोरिदम एज लिस्ट से ग्राफ बनाएं (अनडायरेक्टेड)। लेबल मैप बनाएं। रिकर्सिव DFS r(ni): चिल्ड्रन के काउंटर्स मर्ज करें, अपना लेबल जोड़ें, R[ni] = count[label]। पैरेंट लिंक हटाकर साइकिल अव

  1. Python में गोदाम में रखे जाने वाले बॉक्स की संख्या खोजने का प्रोग्राम Python में गोदाम में रखे जाने वाले बॉक्स की संख्या खोजने का प्रोग्राम

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

  1. Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना Python प्रोग्राम से सूची में सबसे छोटी संख्या खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है। यहां हम या तो सूची को क्रमबद्ध करके सबसे छोटा तत्व प्राप्त कर सकते हैं या बिल्ट-इन min() फ़ंक्शन का उपयोग करके सबसे छोटा तत्