আমাদের একটি ম্যাট্রিক্স দেওয়া আছে যাতে পূর্ণসংখ্যা রয়েছে। লক্ষ্য হলো ম্যাট্রিক্সে কতগুলো সারি (row) আছে যাতে সব উপাদান একই (identical)।
যদি ৫×৪ ম্যাট্রিক্স হয়:
| 1 | 5 | 1 | 3 | 1 |
| 1 | 1 | 1 | 1 | 1 |
| 5 | 3 | 2 | 3 | 5 |
| 7 | 7 | 7 | 7 | 7 |
উত্তর হবে ২, কারণ সারি ১ (সব ১) এবং সারি ৩ (সব ৭) একই উপাদান ধারণ করে।
উদাহরণ দিয়ে বুঝি
ইনপুট −
matrix = [ 1 1 1 1 ]
[ 2 3 2 7 ]
[ 3 3 3 3 ]
আউটপুট − একই উপাদান ধারণকারী সারির সংখ্যা: ২
ব্যাখ্যা − সারি ০ সব ১ ধারণ করে এবং সারি ২ সব ৩ ধারণ করে।
ইনপুট −
matrix = [ 1 2 3 4 ]
[ 1 2 3 4 ]
[ 1 2 3 4 ]
আউটপুট − একই উপাদান ধারণকারী সারির সংখ্যা: ০
ব্যাখ্যা − সব সারিতে ভিন্ন ভিন্ন উপাদান রয়েছে।
প্রোগ্রামে ব্যবহৃত পদ্ধতি
ম্যাট্রিক্সকে ভেক্টর অফ ভেক্টর <int> হিসেবে নেওয়া হয়েছে। প্রতিটি সারিকে ট্রাভার্স করে একটি set<int> তৈরি করা হয়। সারির সব উপাদান সেটে ইনসার্ট করা হয়। শেষে যদি সেটের সাইজ ১ হয়, তবে ওই সারিতে সব উপাদান একই।
- ম্যাট্রিক্স
vector<vector<int>> matrixহিসেবে নিন এবং ইনিশিয়ালাইজ করুন। matrix.size()দিয়ে সাইজ বের করুন।same_rows(vector<vector<int>> matrix, int size)ফাংশন ম্যাট্রিক্স এবং সাইজ নিয়ে একই উপাদানধর্মী সারির কাউন্ট রিটার্ন করে।- প্রাথমিক কাউন্ট ০।
i=0থেকেi<sizeপর্যন্ত লুপে ম্যাট্রিক্স ট্রাভার্স করুন।- প্রতিটি সারির জন্য
j=0থেকেj<matrix[i].size()পর্যন্ত লুপ চালান। - বর্তমান সারির উপাদান রাখার জন্য
set<int> set_rowনিন। set_row.insert(matrix[i][j])দিয়ে উপাদান যোগ করুন।- শেষে
set_row.size()চেক করুন। যদি ১ হয়, তবে কাউন্ট বাড়ান। - সব সারি প্রসেস করার পর
countরিটার্ন করুন।
উদাহরণ
#include <bits/stdc++.h>
using namespace std;
int same_rows(vector<vector<int>> matrix, int size) {
int count = 0;
for (int i = 0; i < size; i++) {
set<int> set_row;
for (int j = 0; j < matrix[i].size(); j++) {
set_row.insert(matrix[i][j]);
}
int set_size = set_row.size();
if (set_size == 1) {
count++;
}
}
return count;
}
int main() {
vector<vector<int>> matrix = {
{ 2, 2, 2, 2},
{ 5, 5, 5, 5 },
{ 2, 2, 2, 2 },
{5, 5, 5, 5}
};
int size = matrix.size();
cout << "Count of rows in a matrix that consist of same element are: " << same_rows(matrix, size);
return 0;
}
আউটপুট
Count of rows in a matrix that consist of same element are: 4