কম্পিউটার

পাইথনে সমস্ত ভাল পারফর্মারদের ন্যূনতম পরিমাণ অর্থ প্রদানের প্রয়োজন খুঁজে বের করার জন্য প্রোগ্রাম


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

সুতরাং, ইনপুট যদি রেটিং =[1, 2, 5, 1] ​​এর মত হয়, তাহলে আউটপুট হবে 7000, যেহেতু আমরা প্রতিটি সংশ্লিষ্ট কোডারের জন্য সর্বনিম্ন অর্থ প্রদান করতে পারি [1000, 2000, 3000, 1000]

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

  • pay:=রেটিং এর আকারের একটি তালিকা, প্রাথমিকভাবে সমস্ত মান 1

  • আমার জন্য রেঞ্জ 1 থেকে রেটিং এর আকার - 1, করুন

    • যদি রেটিং[i]> রেটিং [i-1] হয়, তাহলে

      • pay[i] :=pay[i-1]+1

  • রেটিং-2 থেকে 0 এর রেঞ্জ সাইজের জন্য, 1 দ্বারা হ্রাস করুন, করুন

    • যদি রেটিং[i]> রেটিং[i+1] হয়, তাহলে

      • pay[i] :=সর্বোচ্চ বেতন[i] এবং পে[i+1]+1

  • ফেরত (বেতনের উপাদানের যোগফল) *1000

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

উদাহরণ

class Solution:
   def solve(self, ratings):
      pay=[1 for _ in ratings]
      for i in range(1, len(ratings)):
         if ratings[i] > ratings[i-1]:
            pay[i] = pay[i-1]+1
      for i in range(len(ratings)-2,-1,-1):
         if ratings[i] > ratings[i+1]:
         pay[i] = max(pay[i], pay[i+1]+1)
      return sum(pay)*1000
ob = Solution()
ratings = [1, 2, 5, 1]
print(ob.solve(ratings))

ইনপুট

[1, 2, 5, 1]

আউটপুট

7000

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

  2. পাইথন ব্যবহার করে সমস্ত নোডে পৌঁছানোর জন্য ন্যূনতম সংখ্যক শীর্ষবিন্দু খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে একটি ফোল্ডার থেকে বাড়িতে ফিরে যাওয়ার জন্য প্রয়োজনীয় ন্যূনতম লাফ খুঁজে বের করার জন্য প্রোগ্রাম

  4. পাইথনে সমস্ত N ক্যান্ডি কিনতে সর্বনিম্ন এবং সর্বাধিক পরিমাণ খুঁজুন