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

पायथन में फाइनल मैच कितने तैराक जीतेंगे, यह गिनने का कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की एक सूची है, जिन्हें अंक कहा जाता है, जिनकी लंबाई n है। इस सूची में मौजूद तत्व एक प्रतियोगिता में तैराकों के वर्तमान स्कोर का प्रतिनिधित्व कर रहे हैं। फाइनल मैच के लिए इस मौजूदा दौर के पहले स्थान के विजेता को n अंक मिलेंगे, दूसरे स्थान के विजेता को n-1 अंक मिलेंगे और इसी तरह। हमें उन तैराकों की संख्या की जांच करनी होगी जो मौजूदा दौर के बाद भी अंतिम दौर में प्रतियोगिता जीत सकते हैं। अगर पहले अंक के लिए कोई टाई है, तो उसे भी जीत के रूप में गिना जाएगा।

इसलिए, यदि इनपुट अंकों की तरह है =[9, 6, 11, 12], तो आउटपुट 3 होगा, क्योंकि तैराक जो वर्तमान में स्कोर 9, 11 और 12 पर हैं, वे सभी जीत सकते हैं यदि अंतिम स्कोर [13] है , 9, 13, 13]। यानी, 9 अंक वाले तैराक ने पहला स्थान प्राप्त किया इसलिए 4 अंक अतिरिक्त मिले, फिर 6 अंक वाले तैराक को दूसरा स्थान मिला, इसलिए अब स्कोर 9 है। 11 अंक वाले तैराक को तीसरा स्थान मिलता है इसलिए नया स्कोर 13 है, और 12 अंक के तैराक को मिला है। अंतिम स्थान तो स्कोर भी 12 है। लेकिन अगर 6 अंक तैराक प्रथम स्थान प्राप्त करता है तो उसका अंतिम स्कोर 10 अंक होगा, 9 अंक तैराक को दूसरा मिलेगा, उसका स्कोर 12 होगा और इसी तरह, फिर भी दूसरे तैराक के लिए जीतने का कोई मौका नहीं है।

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

  • यदि अंक खाली हैं, तो
    • वापसी 0
  • n :=अंकों का आकार
  • उत्तर:=0
  • सूची संख्या क्रमित करें
  • a :=0
  • मैं के लिए n - 1 से 0 की श्रेणी में, 1 से घटाएं
    • कैंड:=nums[i] + n - i
    • अगर कैंड> ए, तो
      • a :=cand
  • अंकों में प्रत्येक x के लिए, करें
    • यदि x + n>=a, तो
      • उत्तर:=उत्तर + 1
  • वापसी उत्तर

उदाहरण

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

def solve(nums):
   if not nums:
      return 0
   n = len(nums)
   ans = 0
   nums.sort()
   a = 0
   for i in range(n - 1, -1, -1):
      cand = nums[i] + n - i
      if cand > a:
         a = cand
   for x in nums:
      if x + n >= a:
         ans += 1
   return ans

nums = [9, 6, 11, 12]
print(solve(nums))

इनपुट

[9, 6, 11, 12]

आउटपुट

3

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

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

  1. अजगर में मैट्रिक्स में घिरे द्वीपों की संख्या गिनने का कार्यक्रम

    मान लीजिए कि हमारे पास एक बाइनरी मैट्रिक्स है। जहां 1 भूमि का प्रतिनिधित्व करता है और 0 पानी का प्रतिनिधित्व करता है। जैसा कि हम जानते हैं कि एक द्वीप 1s का एक समूह है जो एक साथ समूहीकृत होता है जिसकी परिधि पानी से घिरी होती है। हमें पूरी तरह से घिरे हुए द्वीपों की संख्या ज्ञात करनी है। तो, अगर इनप

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

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