কম্পিউটার টিউটোরিয়াল

পাইথনে বস ফাইট সমস্যা সমাধান করুন


मान लीजिए हमारे पास fighters नामक एक बाइनरी सूची और bosses नामक बाइनरी सूचियों की एक और सूची है। fighters सूची में 1 एक फाइटर को दर्शाता है। इसी तरह, bosses सूची में 1 एक बॉस को दर्शाता है। फाइटर एक बॉस की पंक्ति को हरा सकते हैं यदि उस पंक्ति में फाइटरों की संख्या बॉसों की संख्या से अधिक हो। हमें पराजित बॉस पंक्तियों को हटाकर एक नया बॉस मैट्रिक्स लौटाना है।

यदि इनपुट fighters = [0,1,1] और bosses = [[0,0,0], [0,0,1], [0,1,1], [1,1,1]] जैसा है, तो आउटपुट [[0,1,1], [1,1,1]] होगा।

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • fighter_cnt := fighters के सभी तत्वों का योग
  • result := एक नई सूची
  • bosses में प्रत्येक पंक्ति के लिए, करें:
    • यदि fighter_cnt <= पंक्ति के प्रत्येक तत्व का योग, तो
      • पंक्ति को result के अंत में जोड़ें
  • result लौटाएं

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

उदाहरण

class Solution:
    def solve(self, fighters, bosses):
        fighter_cnt = sum(fighters)
        result = []
        for row in bosses:
            if fighter_cnt <= sum(row):
                result.append(row)
        return result

ob = Solution()
fighters = [0, 1, 1]
bosses = [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 1, 1]]
print(ob.solve(fighters, bosses))

इनपुट

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

आउटपुट

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

  1. পাইথনে issuperset() ফাংশন

  2. পাইথনে callable() ফাংশন

  3. পাইথনে আন্ডারস্কোর (_) এর ব্যবহার

  4. পাইথনে Quine প্রোগ্রাম (স্ব-প্রजनনকারী কোড)