কম্পিউটার

পাইথনে n আইটেম বিক্রি করার পরে অবশিষ্ট আইটেম সংখ্যা খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে আইটেম নামক সংখ্যার একটি তালিকা এবং আরেকটি মান n আছে। একজন বিক্রয়কর্মীর একটি ব্যাগে র্যান্ডম আইডি সহ আইটেম রয়েছে। সেলসম্যান ব্যাগ থেকে যত বেশি এন আইটেম মুছে ফেলতে পারে। n অপসারণের পরে আমাদের ব্যাগে ন্যূনতম সংখ্যক বিভিন্ন আইডি খুঁজে বের করতে হবে।

সুতরাং, যদি ইনপুটটি আইটেম =[2, 2, 6, 6] n =2 এর মতো হয়, তবে আউটপুটটি 1 হবে কারণ আমরা আইডি 2 বা আইডি 6 সহ দুটি আইটেম বিক্রি করতে পারি, তবে কেবলমাত্র একক লক্ষ্যযুক্ত আইটেম হবে। সেখানে।

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

  • c :=আইটেমগুলিতে উপস্থিত প্রতিটি উপাদানের ফ্রিকোয়েন্সি
  • উত্তর :=c এর আকার
  • freq :=c-এ সমস্ত ফ্রিকোয়েন্সির তালিকা সাজান
  • i :=0
  • যখন i
  • যদি freq[i] <=n, তারপর
    • n :=n - freq[i]
    • উত্তর :=উত্তর - ১
  • অন্যথায়,
    • উত্তর ফেরত দিন
  • i :=i + 1
  • রিটার্ন 0
  • আরও ভালভাবে বোঝার জন্য আসুন নিম্নলিখিত বাস্তবায়ন দেখি:

    উদাহরণ

    from collections import Counter
    
    class Solution:
       def solve(self, items, n):
          c = Counter(items)
          ans = len(c)
          freq = sorted(c.values())
          i = 0
          while i < len(freq):
             if freq[i] <= n:
                n -= freq[i]
                ans -= 1
             else:
                return ans
             i += 1
          return 0
    
    ob = Solution()
    items = [2, 2, 6, 6]
    n = 2
    print(ob.solve(items, n))

    ইনপুট

    [2, 2, 6, 6], 2

    আউটপুট

    1

    1. পাইথনে মার্জ করার পরে ন্যূনতম সংখ্যার রঙগুলি খুঁজে বের করার প্রোগ্রামটি থাকে

    2. পাইথনে একটি পরিসরে নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম

    3. পাইথন প্রোগ্রামে প্রাইম নম্বর খোঁজার বিভিন্ন পদ্ধতি

    4. পাইথন প্রোগ্রাম একটি তালিকায় সবচেয়ে বড় সংখ্যা খুঁজে বের করতে