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

পাইথনে বেবি ও জায়ান্ট স্টেপ দিয়ে ডেস্টিনেশন পৌঁছানোর ন্যূনতম ধাপ বের করার প্রোগ্রাম

কোয়েরি লিস্ট Q দেওয়া আছে, প্রতিটি [a_i, b_i, d_i]। (০,০) থেকে শুরু। এক ধাপে যেকোনো পয়েন্ট থেকে অন্য পয়েন্টে যেতে পারেন যেখানে ইউক্লিডিয়ান দূরত্ব কমপক্ষে a এবং সর্বোচ্চ b। প্রতিটি কোয়েরির জন্য (d_i, 0) পৌঁছানোর ন্যূনতম ধাপ বের করুন।

উদাহরণ

Q = [(2,3,1), (1,2,0), (3,4,11)] → আউটপুট: [2, 0, 3]

এলগরিদম

  1. steps(a, b, d) ফাংশন:
    • mmin := min(a,b), mmax := max(a,b)
    • যদি d == 0: 0
    • যদি d == mmin or d == mmax: 1
    • যদি d < mmax: 2
    • অন্যথায়: ceil(d / mmax)
  2. প্রতিটি কোয়েরিতে steps কল করে রেজাল্ট লিস্ট বানান।

পাইথন কোড

from math import ceil

def steps(a, b, d):
    mmin = min(a, b)
    mmax = max(a, b)
    if d == 0:
        return 0
    if d in [mmin, mmax]:
        return 1
    if d < mmax:
        return 2
    return ceil(d / mmax)

def solve(Q):
    res = []
    for q in Q:
        a, b, d = q
        res.append(steps(a, b, d))
    return res

Q = [(2,3,1), (1,2,0), (3,4,11)]
print(solve(Q))  # আউটপুট: [2, 0, 3]

ইনপুট / আউটপুট

[(2,3,1), (1,2,0), (3,4,11)]
[2, 0, 3]
  1. Python দিয়ে সব নোডে পৌঁছাতে মিনিমাম ভার্টেক্স বের করার প্রোগ্রাম

  2. পাইথনে ৮-পাজল সমাধানের জন্য প্রয়োজনীয় ধাপের সংখ্যা খুঁজে বের করার প্রোগ্রাম

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

  4. পাইথনে শতর্ঞ্জের ঘোড়া (knight) দিয়ে টার্গেট পজিশনে যেতে ন্যূনতম স্টেপ বের করার প্রোগ্রাম