কম্পিউটার টিউটোরিয়াল

C++-এ X-এর চেয়ে বড় উপাদান वाले সেগমেন্ট সংখ্যা বের করুন


এই আর্টিকেলে আমরা একটি দেওয়া সিকোয়েন্সে সেগমেন্ট বা সাবঅ্যারে সংখ্যা বের করব যেখানে সকল উপাদান দেওয়া সংখ্যা X-এর চেয়ে বড়।

ওভারল্যাপিং সেগমেন্ট শুধু একবার কাউন্ট হবে, এবং দুটি সटा উপাদান বা সেগমেন্ট আলাদা করে কাউন্ট হবে না। সমস্যার মৌলিক উদাহরণ:

ইনপুট : arr[ ] = { 9, 6, 7, 11, 5, 7, 8, 10, 3}, X = 7
আউটপুট : 3
ব্যাখ্যা : { 9 }, { 11 } এবং { 8, 10 } হল 7-এর চেয়ে বড় সেগমেন্ট
ইনপুট : arr[ ] = { 9, 6, 12, 2, 11, 14, 8, 14 }, X = 8
আউটপুট : 4
ব্যাখ্যা : { 9 }, { 12 }, { 11, 14 } এবং { 14 } হল 8-এর চেয়ে বড় সেগমেন্ট

সমাধানের পদ্ধতি

নেইভ পদ্ধতি (Naive Approach)

এই সমস্যায় আমরা একটি state ভেরিয়েবল ০ দিয়ে ইনিশিয়ালাইজ করি এবং দেওয়া অ্যারে প্রসেস করি। যখন X-এর চেয়ে বড় উপাদান পাওয়া যায়, state কে ১ করি এবং উপাদান প্রসেস করি। যখন X-এর চেয়ে কম বা সমান সংখ্যা পাওয়া যায়, state কে ০ করি এবং কাউন্ট ১ বাড়াই state ১ থেকে ০ হওয়ার প্রতিবার।

উদাহরণ

#include <bits/stdc++.h> using namespace std; int main (){     int a[] = { 9, 6, 12, 2, 11, 14, 8, 14 };     int n = sizeof (a) / sizeof (a[0]);     int X = 8;     int state = 0;     int count = 0;     // অ্যারে traverser     for (int i = 0; i < n; i++){         // চেক করো উপাদান X-এর চেয়ে বড় কিনা         if (a[i] > X){             state = 1;         }         else{             // যদি ফ্ল্যাগ true হয়             if (state)                 count += 1;             state = 0;         }     }     // শেষ সেগমেন্ট চেক     if (state)         count += 1;     cout << "Number of segments where all elements are greater than X: " << count;     return 0; }

আউটপুট

Number of segments where all elements are greater than X: 4

উপরোক্ত প্রোগ্রামের ব্যাখ্যা

উপরোক্ত প্রোগ্রামে আমরা state-কে একটি সوییচ হিসেবে ব্যবহার করি, X-এর চেয়ে বড় সংখ্যা পাওয়া যেতে state ১ সেট করি এবং X-এর চেয়ে কম বা সমান সংখ্যা পাওয়া যেতে state ০ সেট করি। state ১ হয়ে আবার ০ হওয়ার প্রতিবার কাউন্ট ১ বাড়াই। অবশেষে count-এ সংরক্ষিত ফলাফল প্রিন্ট করি।

উপসংহার

এই আর্টিকেলে আমরা state ১ এবং ০ সেট করার পদ্ধতি ব্যবহার করে X-এর চেয়ে বড় উপাদান वाले সেগমেন্ট সংখ্যা বের করার সমস্যা সমাধান করেছি। এই প্রোগ্রাম C, Java, Python বা অন্য ভাষায়ও লেখা যায়।


  1. C++ ব্যবহার করে পেন্টাগোনাল পিরামিডাল সংখ্যা নির্ণয় করুন

  2. C++ দিয়ে একটি স্ট্রিংয়ের সাবস্ট্রিং-এর সংখ্যা বের করা

  3. C++ ব্যবহার করে K-এর চেয়ে কম যোগফল वाले সাবঅ্যারে সংখ্যা খুঁজুন

  4. C++-এ ট্রেন স্টপেজ স্টেশন সংখ্যা বের করুন