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

পাইথনে টার্গেট অ্যারে বানाने ন্যূনতম সাবঅ্যারে ইনক্রিমেন্ট অপারেশন বের করার প্রোগ্রাম


মনে করুন target নামক একটি অ্যারে আছে যাতে পজিটিভ ভ্যালু আছে। এখন initial নামক একটি একই সাইজের অ্যারে 생각해 যাতে সব শূন্য। আমাদের initial থেকে target বানাতে ন্যূনতম কত অপারেশন লাগবে তা বের করতে হবে, যেখানে অপারেশন হলো: (initial-এ যেকোনো সাবঅ্যারে সিলেক্ট করুন এবং প্রতিটি ভ্যালু ১ করে বাড়ান।)

যেমন, ইনপুট target = [2,3,4,3,2] হলে, আউটপুট হবে ৪ কারণ: শুরুতে [0,0,0,0,0], প্রথমে ০-৪ ইনডেক্স ১ বাড়ালে [1,1,1,1,1], আবার ০-৪ বাড়ালে [2,2,2,2,2], তারপর ১-৩ বাড়ালে [2,3,3,3,2], এবং শেষে ইনডেক্স ২ বাড়ালে [2,3,4,3,2]।

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

এই সমস্যাটি সমাধান করতে নিচের ধাপগুলো অনুসরণ করুন:

  • prev_num := 0

  • steps := 0

  • target-এ থাকা প্রতিটি val-এর জন্য

    • যদি val > prev_num হয়, তবে steps += val - prev_num, অন্যথায় ০

    • prev_num := val

  • steps রিটার্ন করুন

উদাহরণ

নিচের ইমপ্লিমেন্টেশনটি দেখুন আরও ভালো বোঝার জন্য:

def solve(target):    prev_num = 0    steps = 0    for val in target: steps += val-prev_num if val > prev_num else 0 prev_num = val return steps target = [2,3,4,3,2] print(solve(target))

ইনপুট

[2,3,4,3,2] 

আউটপুট

4

  1. পাইথনে রঙ মার্জ করলে অবশিষ্ট ন্যূনতম রঙের সংখ্যা বের করার প্রোগ্রাম

  2. পাইথনে কয়েন কম্বিনেশন দিয়ে টার্গেট অ্যামাউন্ট পাওয়ার উপায়ের সংখ্যা বের করার প্রোগ্রাম

  3. পাইথনে লাস্ট ইনডেক্সে পৌঁছানোর ন্যূনতম স্টেপ বের করার প্রোগ্রাম (জাম্প গেম ভেরিয়েন্ট)

  4. পাইথনে n কে ফিবোনাচ্চি সংখ্যা গুলোর যোগফলে প্রকাশ করার ন্যূনতম সংখ্যা বের করা