ধরা যাক একটি ২D বাইনারি ম্যাট্রিক্স রয়েছে, যেখানে ১ বোমা এবং ০ খালি সেল বোঝায়। যখন একটি বোমা বিস্ফোরিত হয়, তখন সেই সারি এবং কলামের সব সেল ক্ষতিগ্রস্ত হয়। আমাদের কতগুলো সেলে দাঁড়াতে পারি যাতে ক্ষতিগ্রস্ত না হই তা বের করতে হবে।
উদাহরণ
ইনপুট ম্যাট্রিক্স:
| 1 | 1 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
আউটপুট: 2
ব্যাখ্যা: নিচের ডান কোণার সেল এবং মাঝের ডান সেল—এই দুটি জায়গা নিরাপদ।
সমাধানের ধাপসমূহ
r := ম্যাট্রিক্সের সারি সংখ্যা পরিমাণের একটি লিস্ট False দিয়ে ভরাc := ম্যাট্রিক্সের কলাম সংখ্যা পরিমাণের একটি লিস্ট False দিয়ে ভরাi = 0থেকেরো কাউন্ট-১পর্যন্ত লুপ চালানj = 0থেকেকলাম কাউন্ট-১পর্যন্ত লুপ চালান- যদি
matrix[i][j] == 1হয়, তবে:r[i] := True,c[j] := True
ct := 0- আবার সারি এবং কলামের সব সেল ঘুরে:
- যদি
r[i] == Falseএবংc[j] == Falseহয়, তবেct := ct + 1
- যদি
ctফেরত দিন
পাইথন ইমপ্লিমেন্টেশন
class Solution:
def solve(self, matrix):
r = [False for _ in range(len(matrix))]
c = [False for _ 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