समस्या विवरण
बाइनरी सूची fighters (1 = फाइटर) और बाइनरी मैट्रिक्स bosses (1 = बॉस) दी गई है। फाइटर एक बॉस की पंक्ति को हरा सकते हैं यदि फाइटर की संख्या बॉस की संख्या से अधिक या बराबर हो। हारे हुए बॉस की पंक्तियों को हटाकर नया मैट्रिक्स वापस करें।
उदाहरण
fighters = [0, 1, 1] (2 फाइटर)
bosses = [[0,0,0], [0,0,1], [0,1,1], [1,1,1]]
आउटपुट: [[0,1,1], [1,1,1]] (केवल वे पंक्तियाँ जिनमें ≥2 बॉस हैं)
एल्गोरिदम
fighter_cnt = sum(fighters)- परिणाम सूची
result = [] - प्रत्येक
rowके लिएbossesमें:- यदि
fighter_cnt <= sum(row):result.append(row)
- यदि
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]]