একটি m×n বাইনারি ম্যাট্রিক্স দেওয়া আছে। 스페শাল পজিশন (i,j) বলতে mat[i][j] = 1 এবং row i এবং column j-এ অন্য সব এলিমেন্ট ০ থাকাকে বোঝায়। স্পেশাল পজিশনের সংখ্যা বের করতে হবে।
ইনপুট ম্যাট্রিক্স:
| 1 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 |
সমাধানের ধাপসমূহ
special := 0
প্রতিটি row i-এর জন্য:
- যদি row-এ ঠিক ১টি ১ থাকে:
- indexOfOne = row-এ ১-এর পজিশন
- column indexOfOne-এ মোট কতটি ১ আছে সেটা কাউন্ট করুন
- যদি মোট ১টি হয়: special++
- যদি row-এ ঠিক ১টি ১ থাকে:
special রিটার্ন করুন
উদাহরণ (Python)
def solve(matrix):
special = 0
for i in range(len(matrix)):
if matrix[i].count(1) == 1:
numOfOne = 0
indexOfOne = matrix[i].index(1)
for j in range(len(matrix)):
if matrix[j][indexOfOne] == 1:
numOfOne += 1
if numOfOne > 1:
break
if numOfOne == 1:
special += 1
return special
matrix = [[1,0,0,0,0], [0,0,1,0,0], [0,0,0,1,1], [0,1,0,0,0]]
print(solve(matrix))
ইনপুট
[[1,0,0,0,0], [0,0,1,0,0], [0,0,0,1,1], [0,1,0,0,0]]
আউটপুট
3