আজকে আমরা আরও একটি লিনিয়ার সার্চ রিলেটেড সমস্যা সমাধান করবো । এই সমস্যাটি Hackerearth অনলাইন জাজ থেকে নেওয়া হয়েছে ।
সমস্যার নাম - গোল্ডেন আয়তক্ষেত্র
উপরোক্ত সমস্যাটিতে বলা হয়েছে যে, আমাদের কাছে একটি আয়তক্ষেত্র 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
❤️❤️❤️good job boss
ReplyDeleteThanks boss
Delete