কম্পিউটার

পাইথনে বিভিন্ন নোট সহ গ্রাহক সারিতে পরিবেশন করা সম্ভব কিনা তা পরীক্ষা করুন


ধরুন আমাদের নোট নামে একটি অ্যারে রয়েছে যা গ্রাহকদের সারিতে রাখা বিভিন্ন টাকার নোটকে উপস্থাপন করে। তারা সবাই 50 টাকার টিকিট কেনার জন্য অপেক্ষা করছে। এখানে সম্ভাব্য নোট [50, 100 এবং 200]। আমরা লোকেদের কাছে টিকিট বিক্রি করতে পারব কি না তা আমাদের পরীক্ষা করতে হবে, প্রাথমিকভাবে আমাদের হাতে 0 টাকা আছে।

সুতরাং, যদি ইনপুটটি নোটের মত হয় =[50, 50, 100, 100], তাহলে প্রথম দুটির জন্য আউটপুট True হবে আমাদের কিছু ফেরত দিতে হবে না, কিন্তু এখন আমাদের কাছে দুটি 50 টাকার নোট আছে। তাই শেষ দুটির জন্য আমরা তাদের 50 টাকার নোট ফেরত দিতে পারি এবং সমস্ত টিকিট বিক্রি করতে পারি।

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

  • freq :=একটি খালি মানচিত্র
  • i :=0
  • যখন আমি <নোটের আকার, কর
    • যদি নোট[i] 50 এর মত হয়, তাহলে
      • freq[50] :=freq[50] + 1
    • অন্যথায় যখন নোট[i] 100 এর মত হয়, তাহলে
      • freq[100] :=freq[100] + 1
      • যদি freq[50] 0 হয়, তাহলে
        • লুপ থেকে বেরিয়ে আসুন
      • freq[50] :=freq[50] - 1
    • অন্যথায়,
      • যদি freq[100]> 0 এবং freq[50]> 0 হয়, তাহলে
        • freq[100] :=freq[100] - 1
        • freq[50] :=freq[50] - 1
      • অন্যথায় যখন freq[50]>=3, তারপর
        • freq[50] :=freq[50] - 3
      • অন্যথায়,
        • লুপ থেকে বেরিয়ে আসুন
    • i :=i + 1
  • যদি আমি নোটের আকারের সমান হয়, তাহলে
    • সত্য ফেরান
  • মিথ্যে ফেরত দিন

উদাহরণ

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

from collections import defaultdict
def solve(notes):
   freq = defaultdict(int)
   i = 0
   while i < len(notes):
      if notes[i] == 50:
         freq[50] += 1
      elif notes[i] == 100:
         freq[100] += 1
         if freq[50] == 0:
            break
         freq[50] -= 1
      else:
         if freq[100] > 0 and freq[50] > 0:
            freq[100] -= 1
            freq[50] -= 1
         elif freq[50] >= 3:
            freq[50] -= 3
         else:
            break
      i += 1
   if i == len(notes):
      return True
   return False
notes = [50, 50, 100, 100]
print(solve(notes))

ইনপুট

[50, 50, 100, 100]

আউটপুট

True

  1. পাইথনের সাথে মাল্টিথ্রেডেড সারি কীভাবে বাস্তবায়ন করবেন

  2. পাইথনে বিভিন্ন চার্ট সহ ডেটা ভিজ্যুয়ালাইজেশন?

  3. পাইথনে টার্মিনালের সাথে একটি ফাইল সংযুক্ত কিনা তা কীভাবে পরীক্ষা করবেন?

  4. পাইথনে সাবস্ট্রিং দিয়ে স্ট্রিং বা স্ট্রিংয়ের একটি সাবস্ট্রিং শুরু হয় কিনা তা কীভাবে পরীক্ষা করবেন?