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

পাইথনে জুতা বিক্রি করে কত টাকা আয় হবে তা বের করার প্রোগ্রাম

ধরুন একটি জুতাদোকানে nটি ভিন্ন সাইজের জুতা আছে size অ্যারেতে এবং m কাস্টমারের ডিমান্ড আছে demand লিস্টে, যেখানে demand[i] ধারণ করে (shoe_size, money) অর্থাৎ i-তম কাস্টমার shoe_size সাইজের জুতা চায় এবং সে money টাকা দিতে পারবে। আমাদের বের করতে হবে দোকানদার জুতা বিক্রি করে কত টাকা আয় করতে পারবে।

উদাহরণস্বরূপ, যদি ইনপুট shoes = [2,3,4,5,6,8,7,6,5,18] এবং demand = [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)] হয়, তবে আউটপুট হবে 200 কারণ:

  • প্রথম কাস্টমার সাইজ ৬ এর জুতা ৫৫ টাকায় কিনবে
  • দ্বিতীয় কাস্টমার সাইজ ৬ এর জুতা ৪৫ টাকায় কিনবে
  • স্টকে আর সাইজ ৬ এর জুতা নেই
  • চতুর্থ কাস্টমার সাইজ ৪ এর জুতা ৪০ টাকায় কিনবে
  • পঞ্চম কাস্টমার সাইজ ১৮ এর জুতা ৬০ টাকায় কিনবে
  • ষষ্ঠ কাস্টমারকে জুতা মেলবে না কারণ সাইজ ১০ নেই

মোট আয় 55 + 45 + 40 + 60 = 200।

সমাধানের ধাপসমূহ

  • n := size of demand
  • sizes := Counter(shoes) - সাইজ অনুযায়ী জুতার ফ্রিকোয়েন্সি
  • earn := 0
  • for i in range 0 to n-1:
    • (sz, price) := demand[i]
    • যদি সাইজ sz এর জুতা sizes-এ থাকে, তবে:
      • sizes[sz] -= 1
      • earn += price
  • earn রিটার্ন করুন

উদাহরণ

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

from collections import Counter

def solve(shoes, demand):
    n = len(demand)
    sizes = Counter(shoes)
    earn = 0
    for i in range(n):
        sz, price = demand[i]
        if sizes[sz]:
            sizes[sz] -= 1
            earn += price
    return earn

shoes = [2,3,4,5,6,8,7,6,5,18]
demand = [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)]
print(solve(shoes, demand))

ইনপুট

[2,3,4,5,6,8,7,6,5,18], [(6,55), (6,45), (6,55), (4,40), (18,60), (10,50)]

আউটপুট

200
  1. পাইথনে পলিগনের পরিসীমা বের করার প্রোগ্রাম

  2. কতগুলো কিউব কাটা হবে সেটা বের করার প্রোগ্রাম

  3. পাইথন প্রোগ্রাম কীভাবে রান করবেন?

  4. পাইথনে সব গাছ জ্বলে যাওয়ার জন্য কত দিন লাগবে তা বের করার প্রোগ্রাম