ম্যাগনেটের পোল: ১ = পজিটিভ, ০ = নেগেটিভ। ম্যাগনেট হচ্ছে "10" বা "01"। ভিন্ন পোলের ম্যাগনেট পাশাপাশি থাকলে একটি গ্রুপ তৈরি হয়। Nটি ম্যাগনেট দিয়ে কতগুলো গ্রুপ বनेगा, তা বের করতে হবে।
উদাহরণ: magnets=["10","01","01","01","10","01"] হলে আউটপুট ৪। কারণ পাশাপাশি ভিন্ন ম্যাগনেট ৪ জায়গায় আছে।
অ্যালগরিদম
- ম্যাগনেট অ্যারে আরম্ভ করুন
- count = ১ (কমপক্ষে ১ গ্রুপ থাকবে)
- i=1 থেকে n-1 পর্যন্ত: যদি magnets[i] != magnets[i-1] হয়, count++
- count রিটার্ন করুন
ইমপ্লিমেন্টেশন
#include <bits/stdc++.h> using namespace std; int getMangetGroupsCount(string magnets[], int n) { int count = 1; for (int i = 1; i < n; i++) { if (magnets[i] != magnets[i - 1]) count++; } return count; } int main() { string magnets[] = { "10", "01", "01", "01", "10", "01" }; int n = 6; cout << getMangetGroupsCount(magnets, n) << endl; return 0; }আউটপুট
4