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

পাইথনে N টি ক্যান্ডি কিনতে ন্যূনতম ও সর্বোচ্চ খরচ নির্ণয়

একটি ক্যান্ডি স্টোরে N ধরনের ক্যান্ডি আছে, প্রতিটির দাম দেওয়া আছে। একটি অফার আছে: একটা ক্যান্ডি কিনলে সর্বোচ্চ K ধরনের অন্য ক্যান্ডি ফ্রি পাওয়া যায়। সব N ধরনের ক্যান্ডি কিনতে ন্যূনতম এবং সর্বোচ্চ কত টাকা খরচ হবে তা বের করতে হবে। অফার সর্বোচ্চ ব্যবহার করতে হবে।

উদাহরণ

ইনপুট: price = [4, 3, 2, 5], k = 2

আউটপুট: Minimum = 5, Maximum = 9

ব্যাখ্যা:

  • ন্যূনতম: সস্তা ক্যান্ডি কিনে (২ টাকা) মন্ত্র costly দুটি (৪, ৫) ফ্রি নিন। তারপর ৩ টাকার কিনুন। মোট = ২ + ৩ = ৫।
  • সর্বোচ্চ: ম lanzamiento ক্যান্ডি কিনে (৫ টাকা) সস্তা দুটি (২, ৩) ফ্রি নিন। তারপর ৪ টাকার কিনুন। মোট = ৫ + ৪ = ৯।

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

  1. ন্যূনতম খরচ: দামগুলো সাজান (ascending)। শুরু থেকে কিনুন, প্রতিবার K টি ফ্রি নিন (শেষ থেকে)।
  2. সর্বোচ্চ খরচ: দামগুলো সাজান (ascending)। শেষ থেকে কিনুন (সবচেয়ে costly), প্রতিবার K টি ফ্রি নিন (শুরু থেকে)।

পাইথন কোড

def get_min(A, k):
    n = len(A)
    A.sort()
    res = 0
    i = 0
    while n > 0:
        res += A[i]
        n -= k
        i += 1
    return res

def get_max(A, k):
    n = len(A)
    A.sort()
    res = 0
    idx = 0
    i = n - 1
    while i >= idx:
        res += A[i]
        idx += k
        i -= 1
    return res

A = [4, 3, 2, 5]
k = 2
print(get_min(A, k), get_max(A, k))

ইনপুট

[4, 3, 2, 5], 2

আউটপুট

5 9
  1. পাইথনে সব চিঠি ডেলিভারি করার জন্য ন্যূনতম পথ বের করার প্রোগ্রাম

  2. পাইথনে সাপ-সিড়ি খেলার ন্যূনতম মুভ বের করার প্রোগ্রাম

  3. পাইথনে সব সম্ভাব্য বৈধ পথ থেকে সর্বোচ্চ স্কোর বের করার প্রোগ্রাম

  4. পাইথনে সব পয়েন্ট কানেক্ট করার ন্যূনতম খরচ বের করার প্রোগ্রাম