Saturday 17 July 2021

গোল্ডেন আয়তক্ষেত্র - (লিনিয়ার সার্চ অনুশীলন )

 


আজকে আমরা  আরও একটি লিনিয়ার সার্চ রিলেটেড সমস্যা সমাধান করবো । এই সমস্যাটি Hackerearth অনলাইন জাজ থেকে নেওয়া হয়েছে ।

সমস্যার নাম -  গোল্ডেন আয়তক্ষেত্র

linear search bangla, data structures and algorithm in bangla

উপরোক্ত সমস্যাটিতে বলা হয়েছে যে, আমাদের কাছে একটি আয়তক্ষেত্র N আছে । এই N আয়তক্ষেত্রটি  গোল্ডেন আয়তক্ষেত্র  হবে  যদি এর পাশের (Height and Width) অনুপাত [1.6, 1.7] এর মাঝে হয় ।এখন আমাদের কাজ হল গোল্ডেন আয়তক্ষেত্রের সংখ্যা খুঁজে বের করা। 

 যদি আপনি সমস্যা টি বুঝে থাকেন তাহলে সমাধান করে এইখানে গিয়ে সাবমিট করুন । আপনার যদি জানা বা মনে নাহ থাকে যে কিভাবে জাভাস্ক্রিপ্ট দিয়ে বিভিন্ন অনলাইন জাজে সমস্যা সমাধান করা হয় তাহলে এই আর্টিকেল টি দেখতে পারেন ।

-------------------------

এই সমস্যাই, ইনপুট হিসেবে -

  • প্রথম লাইনে  আমাদেরকে একটি ইন্টিজার নাম্বার  N  নিতে হবে যা 
    আয়তক্ষেত্রের সংখ্যা নির্দেশ করে। 
  • N এর উপর নির্ভর করে পরবর্তী লাইনগুলোতে দুটি নাম্বার (Width and Height) নিতে হবে যা
    আয়তক্ষেত্রের প্রস্থ  এবং উচ্চতা নির্দেশ করে ।

আউটপুটে আমাদেরকে প্রিন্ট করতে হবে  ইনপুটকৃত নাম্বারের মধ্যে কতগুলো গোল্ডেন আয়তক্ষেত্র আছে  তার  সংখ্যা ।

আর বেশি কথা না বলে সমস্যাটি সমাধান করা যাক -

-------------------

// ইনপুট হিসেবে আয়তক্ষেত্রের সংখ্যা n নিলাম  
    let n = parseInt(readline());

    // গোল্ডেন আয়তক্ষেত্রের সংখ্যা হিসেব করার জন্য প্রথমে count = 0 রাখলাম
    let count = 0;

    // ratio নামে একটি ভেরিয়েবল নিলাম যা অনুপাতের মান ধরে রাখবে
    let ratio; 

    // একটি লুপ যা n সংখ্যক বার চলবে
    for(let i = 0; i<n; i++){
    
        // প্রত্যেক লাইনে ইনপুট (width and height)নিলাম 
        let wh = readline().split(" ").map((x) => parseFloat(x));
        
        // width এবং  height কে আলাদা আলাদা করে ভেরিয়েবলে রাখলাম
        let width = wh[0], height = wh[1];
    
  
        // যদি height থেকে width সমান বা বড় হয়
        if(width >= height){
        
        // তাহলে,  অনুপাত = প্রস্থ / উচ্চতা
            ratio = width / height; 
            
        }else{
         // তাহলে, অনুপাত = উচ্চতা / প্রস্থ
            ratio = height / width;
            
        }

        // এখন চেক করি অনুপাত কি [1.6, 1.7] এর মাঝে ? যদি সত্য হয় -
        if(ratio >= 1.6 && ratio <= 1.7){
            
            // count এর মান 1 করে বাড়ায়
            count = count + 1;
        }
    
    }
    
    // গোল্ডেন আয়তক্ষেত্র কয়টি আছে তা count ধরে রাখছে । 
    // count প্রিন্ট করি
    print(count);

আমাদের সমস্যা সমাধান হয়েছে । আশা করি কোড বুঝতে সমস্যা হবে নাহ । এখন আমি উপরোক্ত কোড এখানে গিয়ে সাবমিট করব তবে সাবমিট করার আগে আমাদের কিছু ব্রয়লার কোডের সাহায্য নিতে হয় আশা করি আপনারা তা জানেন ।

তবুও এখানে কোডটুকু দেওয়া হইলো -

"use strict";
process.stdin.resume();
process.stdin.setEncoding("utf-8");
function print(x) {
console.log(x);
}
let inputString = "";
let currentLine = 0;
process.stdin.on("data", (inputStdin) => {
inputString += inputStdin;
});
process.stdin.on("end", () => {
inputString = inputString.split("\n");
main();
});
function readline() {
return inputString[currentLine++];
}

// code start
function main() {

// write code here

}

এখন আমাদের সমাধান উপরোক্ত ব্রয়লার কোডের main() ফাংশনের ভেতর পেস্ট করি এবং  JavaScript(Node.js) সিলেক্ট করি  -


এখন সাবমিট করি -

আমাদের কোড Accepted । আশা করি বুঝতে পারছেন -

# linear search in javascript

# linear search problems

Share:

2 comments: