अंक 1 सकारात्मक ध्रुव का प्रतिनिधित्व करते हैं जबकि 0 नकारात्मक ध्रुव का प्रतिनिधित्व करता है।
चुंबक के दोनों ध्रुव 10 . होंगे या 01. एक दूसरे को आकर्षित करने वाले चुम्बकों से एक समूह बनाया जा सकता है। अलग-अलग ध्रुवों वाले चुम्बक एक दूसरे के सामने एक ही समूह में होंगे।
यहाँ, आपको N संख्या के चुम्बक दिए गए हैं। आपको यह पता लगाना होगा कि उनके साथ कितने समूह बनाए जा सकते हैं।
जब भी दो अलग-अलग चुम्बक साथ-साथ होते हैं, तो एक नया समूह बनता है। उस स्थिति में समूहों की संख्या बढ़ाएँ।
आइए एक उदाहरण देखें।
इनपुट
magnets = ["10", "01", "01", "01", "10", "01"]
आउटपुट
4
दिए गए सरणी में 4 चुम्बक एक दूसरे को एक दूसरे की ओर आकर्षित करते हैं। वे "10", "01", "10", "01" हैं।
एल्गोरिदम
- चुंबक के साथ सरणी प्रारंभ करें।
- गिनती को 1 से प्रारंभ करें क्योंकि हम जोड़े ले रहे हैं।
- एक ऐसा लूप लिखें जो 1 अनुक्रमणिका से सरणी के अंत तक पुनरावृत्त हो।
- यदि वर्तमान चुम्बक पिछले चुम्बक के बराबर नहीं है, तो गिनती बढ़ाएँ।
- गिनती लौटाएं।
कार्यान्वयन
C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है
#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