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

পাইথনে ভালো পারফরমারদের ন্যূনতম বেতন বের করার প্রোগ্রাম


ধরা যাক ratings নামক একটি তালিকা আছে যা কোডারদের পারফরম্যান্স স্কোর। ম্যানেজার প্রত্যেককে ১০০০ টাকা দিতে চান, কিন্তু যদি দুজন সন্নিহিত কোডার থাকে, ভালো পারফরমারকে কমপক্ষে ১০০০ টাকা বেশি দিতে হবে। ন্যূনতম মোট বেতন বের করতে হবে।

উদাহরণ: ratings = [1, 2, 5, 1] হলে আউটপুট 7000, কারণ বেতন [1000, 2000, 3000, 1000]।

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

  • pay := ratings-এর আকারের তালিকা, সব ১ দিয়ে ভরা।
  • i = 1 থেকে len(ratings)-1: যদি ratings[i] > ratings[i-1], pay[i] = pay[i-1] + 1
  • i = len(ratings)-2 থেকে 0 পর্যন্ত: যদি ratings[i] > ratings[i+1], pay[i] = max(pay[i], pay[i+1] + 1)
  • sum(pay) * 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. Python দিয়ে সব নোডে পৌঁছাতে মিনিমাম ভার্টেক্স বের করার প্রোগ্রাম

  3. ফোল্ডার লগ থেকে হোম ফোল্ডারে ফেরার ন্যূনতম জাম্প বের করা

  4. পাইথনে N টি ক্যান্ডি কিনতে ন্যূনতম ও সর্বোচ্চ খরচ নির্ণয়