কম্পিউটার

পাইথনের একটি দোকানে বিশেষ ছাড় সহ চূড়ান্ত মূল্য খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে দাম নামে একটি অ্যারে আছে যেখানে দাম[i] একটি দোকানের ith আইটেমের দামকে প্রতিনিধিত্ব করে। একটি বিশেষ অফার চলছে, যদি আমরা ith আইটেমটি কিনি, তাহলে আমরা মূল্যের সমতুল্য একটি ছাড় পাব যেখানে j হল ন্যূনতম সূচক যেমন j> i এবং jth আইটেমের দাম কম বা দামের সমান ith আইটেম (অর্থাৎ দাম[j] <=দাম[i]), অন্যথায়, আমরা কোনো ছাড় পাব না। আমাদের একটি অ্যারে খুঁজে বের করতে হবে যেখানে ith উপাদানটি চূড়ান্ত মূল্য যা আমরা বিশেষ ছাড় বিবেচনা করে দোকানের ith আইটেমের জন্য অর্থ প্রদান করব।

সুতরাং, ইনপুট যদি দামের মত হয় =[16,8,12,4,6], তাহলে আউটপুট হবে [8, 4, 8, 4, 6], যেহেতু আইটেম0 এর দাম 16, তাই আমরা একটি পাব মূল্যের সমতুল্য ডিসকাউন্ট[1]=8, তারপর, চূড়ান্ত মূল্য হবে 8 - 4 =4। আইটেম 1 এর জন্য মূল্য[1] 8 হল আমরা মূল্যের সমতুল্য একটি ছাড় পাব[3]=2, তাই, চূড়ান্ত আমরা যে দাম দেব তা হল 8 - 4 =4৷ আইটেম 2 এর জন্য মূল্য [2] হল 12 এবং আমরা মূল্যের মতোই ডিসকাউন্ট মান পাব 8. এবং আইটেম 3 এবং 4 এর জন্য আমরা কোন ছাড় পাব না।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • আমি 0 থেকে দামের আকারের মধ্যে, কর

    • j রেঞ্জ i+1 থেকে দামের আকারের জন্য, করুন

      • যদি দাম[i]>=দাম[j], তাহলে

        • দাম[i] :=দাম[i] - দাম[j]

        • লুপ থেকে বেরিয়ে আসুন

      • অন্যথায়,

        • j :=j + 1

  • রিটার্ন মূল্য

উদাহরণ (পাইথন)

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

def solve(prices):
   for i in range(len(prices)):
      for j in range(i+1,len(prices)):
         if(prices[i]>=prices[j]):
            prices[i]-=prices[j]
            break
         else:
            j+=1
   return prices

prices = [16,8,12,4,6]
print(solve(prices))

ইনপুট

[16,8,12,4,6]

আউটপুট

[8, 4, 8, 4, 6]

  1. পাইথনে একই ধারাবাহিক পার্থক্য সহ সংখ্যাগুলি খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে পুনর্বিন্যাস সহ বৃহত্তম সাবম্যাট্রিক্স খোঁজার প্রোগ্রাম

  3. পাইথনে একই পণ্য সহ টিপল খুঁজতে প্রোগ্রাম

  4. পাইথনে একটি প্রদত্ত গ্রাফে বিশেষ ধরনের সাবগ্রাফ খুঁজে বের করার প্রোগ্রাম