এই টিউটোরিয়ালে, আমরা একটি প্রোগ্রাম লিখব যা নির্বাচন বিজয়ী বের করে। আমাদের একটি ভোটের অ্যারে থাকবে যা প্রতিটি ক্যান্ডিডেট পেয়েছে। একটি উদাহরণ দেখি।
ইনপুট
{"A", "B", "C", "B", "A", "C", "D", "D", "A", "B", "D", "B", "A", "C", "D"}
আউটপুট
A
এখানে, A এবং B একই সংখ্যক ভোট পেয়েছে। সেক্ষেত্রে, তাদের নামের অ্যালফাবেটিক অর্ডার অনুযায়ী বিজয়ী নির্বাচন করতে হবে।
সমস্যাটি সমাধানের ধাপগুলো:
- স্ট্রিং অ্যারে ডামি ডেটা দিয়ে ইনিশিয়ালাইজ করুন।
- string key এবং int value দিয়ে একটি map ইনিশিয়ালাইজ করুন।
- ভোট অ্যারেতে ইটারেট করুন এবং প্রতিটি মেম্বারের ভোট গণনা করুন। ভোট কাউন্ট স্টোর করতে map ব্যবহার করুন।
- ভোট কাউন্ট পেয়ে গেলে, ম্যাপে ইটারেট করুন এবং সর্বোচ্চ ভোট পাওয়া key বের করুন।
- যদি দুজন একই ভোট পায়, তবে তাদের নাম চেক করুন।
- বিজয়ী প্রিন্ট করুন।
উদাহরণ
কোডটি দেখি।
#include "bits/stdc++.h"
using namespace std;
void findElectionWinner(string votes[], int total_votes) {
map<string, int> candidate_votes_count;
// counting each person votes
for (int i = 0; i < total_votes; i++) {
candidate_votes_count[votes[i]]++;
}
// finding winner
int max_votes = 0;
string election_winner;
for (auto& entry : candidate_votes_count) {
string key = entry.first;
int val = entry.second;
// checking the votes with max votes
if (val > max_votes) {
// updating max votes and member
max_votes = val;
election_winner = key;
// comparing the name if the votes are equal
} else if (val == max_votes && election_winner > key) {
election_winner = key;
}
}
cout << election_winner << endl;
}
int main() {
string votes[] = {"A", "B", "C", "B", "A", "C", "D", "D", "A", "B", "D", "B", "A"};
findElectionWinner(votes, 13);
return 0;
}
আউটপুট
A
উপসংহার
টিউটোরিয়ালে যদি কোনো প্রশ্ন থাকে, তবে কমেন্ট সেকশনে জানান।