কম্পিউটার

পাইথনে বোমা বিস্ফোরিত হলে কতগুলো স্থান নিরাপদ তা খুঁজে বের করার কর্মসূচি?


ধরুন আমাদের একটি 2d ​​বাইনারি ম্যাট্রিক্স আছে, যেখানে 1 একটি বোমার প্রতিনিধিত্ব করে এবং 0 একটি খালি ঘরকে উপস্থাপন করে। যখন একটি বোমা বিস্ফোরিত হয়, একই সারি এবং কলামের সমস্ত স্থানগুলি ক্ষতিগ্রস্ত হয়। ক্ষতিগ্রস্থ না হওয়ার জন্য আমরা কতগুলি জায়গায় দাঁড়াতে পারি তা খুঁজে বের করতে হবে৷

সুতরাং, যদি ইনপুট মত হয়

1 1 0
0 0 0
0 0 0

তাহলে আউটপুট হবে 2, কারণ নিচের ডান কক্ষে দুটি স্পেস এবং মাঝখানের ডান কক্ষটি নিরাপদ।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব:

  • r :=ম্যাট্রিক্সের সারি গণনার সমান আকারের একটি তালিকা এবং মিথ্যা দিয়ে পূরণ করুন

  • c :=ম্যাট্রিক্সের কলাম গণনার মতো আকারের একটি তালিকা এবং মিথ্যা দিয়ে পূরণ করুন

  • ম্যাট্রিক্স - 1-এর সারি গণনা 0 থেকে সারিতে থাকা i জন্য, করুন

    • j এর জন্য রেঞ্জ 0 থেকে ম্যাট্রিক্সের কলাম সংখ্যা - 1, করুন

      • যদি ম্যাট্রিক্স[i, j] 1 এর মত হয়, তাহলে

        • r[i] :=সত্য, c[j] :=সত্য

  • ct :=0

  • ম্যাট্রিক্স - 1-এর সারি গণনা 0 থেকে সারিতে থাকা i জন্য, করুন

    • j এর জন্য রেঞ্জ 0 থেকে ম্যাট্রিক্সের কলাম সংখ্যা - 1, করুন

      • যদি r[i] False হয় এবং c[j] False হয়, তাহলে

        • ct :=ct + 1

  • ct

    ফেরত দিন

আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:

উদাহরণ

class Solution:
   def solve(self, matrix):
      r = [False for i in range(len(matrix))]
      c = [False for i in range(len(matrix[0]))]

      for i in range(len(matrix)):
         for j in range(len(matrix[0])):
            if matrix[i][j] == 1:
               r[i] = True
               c[j] = True

   ct = 0
   for i in range(len(matrix)):
      for j in range(len(matrix[0])):
         if r[i] == False and c[j] == False:
            ct += 1
   return ct

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

ইনপুট

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

আউটপুট

2

  1. পাইথনে সর্বাধিক সংখ্যক সমান সারি পেতে ফ্লিপ কলামের সংখ্যা খুঁজে বের করার প্রোগ্রাম?

  2. পাইথন প্রোগ্রামে একটি ম্যাট্রিক্সের স্থানান্তর খুঁজুন

  3. একটি ম্যাট্রিক্সের স্থানান্তর খুঁজে পেতে পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি তালিকায় সবচেয়ে বড় সংখ্যা খুঁজে বের করতে