সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি অ্যারে arr নেবে যা এক-মাত্রিক স্পেসে বিভিন্ন অ্যাসটেরয়েডের পজিশন নির্দেশ করে।
প্রতিটি অ্যাসটেরয়েডের জন্য, 절댓값 এর আকার নির্দেশ করে, এবং চিহ্ন তার দিক নির্দেশ করে (পজিটিভ মানে ডান, নেগেটিভ মানে বাম)। প্রতিটি অ্যাসটেরয়েড একই গতিতে চলে।
ফাংশনটি সব সংঘর্ষের পর অ্যাসটেরয়েডদের অবস্থা বের করবে। যদি দুটি অ্যাসটেরয়েড মিলে, তবে ছোটটি বিস্ফোরিত হবে। যদি দুটির আকার সমান হয়, তবে দুটোই বিস্ফোরিত হবে। একই দিকের দুটি অ্যাসটেরয়েড কখনো মিলবে না।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
ইনপুট
const arr = [1, 7, 3, 6, 5, 6];
আউটপুট
const output = 3;
আউটপুট ব্যাখ্যা
সূচক ৩-এ (nums[3] = 6) এর বাম পাশের সংখ্যাগুলোর যোগফল ডান পাশের যোগফলের সমান।
এছাড়া ৩ হল প্রথম সূচক যেখানে এটি ঘটে।
উদাহরণ
নিচে কোডটি দেওয়া হল –
const arr = [1, 7, 3, 6, 5, 6];
const medianIndex = (arr = []) => {
let sum = arr.reduce((acc, num) => acc + num, 0);
let currentSum = 0;
for (let i = 0; i < arr.length; i++) {
currentSum += (arr[i - 1] || 0);
sum -= arr[i];
if (currentSum === sum) {
return i;
}
}
return -1;
};
console.log(medianIndex(arr));
আউটপুট
3