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

পাইথনে ডায়েট প্ল্যান পারফরম্যান্স মূল্যায়ন

মনে করুন একজন ডায়েটার calories[i] ক্যালরি গ্রহণ করেন, যা i-তম দিনের ক্যালরি নির্দেশ করে। যদি একটি পূর্ণসংখ্যা k থাকে, তবে প্রতিটি ক্রমাগত k দিনের সিকোয়েন্সের জন্য (calories[i] + ... + calories[i+k-1]) মোট ক্যালরি T বের করা হয়। কিন্তু কিছু শর্ত আছে:

  • যদি T < lower bound, তবে ডায়েটার খারাপ পারফর্ম করেছে, ১ পয়েন্ট কমাবে;
  • যদি T > upper bound, তবে ডায়েটার ভালো পারফর্ম করেছে, ১ পয়েন্ট পাবে;
  • অন্যথায়, ডায়েটার সাধারণ পারফর্ম করেছে। পয়েন্ট একই থাকে।

প্রাথমিকভাবে ডায়েটারের শূন্য পয়েন্ট থাকে। আমাদের ডায়েটারের মোট অর্জিত পয়েন্ট বের করতে হবে।

যদি অ্যারে [6,5,0,0] এবং k=2, lower=1, upper=5 হলে আউটপুট হবে ০। C[0]+C[1] > upper, তাই ১ পয়েন্ট বাড়ল, lower ≤ C[1]+C[2] ≤ upper তাই পরিবর্তন নেই, পরে C[2]+C[3] < lower, তাই ১ পয়েন্ট কমল, মোট ০।

এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব:

  • temp := 0
  • for i in range 0 to k
    • temp := temp + C[i]
  • right := k-1, left := 0, points := 0
  • যখন right < C দৈর্ঘ্য
    • যদি temp < lower, points ১ কমান, যদি temp > upper, points ১ বাড়ান
    • temp := temp - C[left]
    • left এবং right ১ বাড়ান
    • যদি right >= C দৈর্ঘ্য, লুপ থেকে বের হন
    • temp := temp + C[right]
  • points রিটার্ন করুন

উদাহরণ

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

class Solution(object):
    def dietPlanPerformance(self, c, k, l, u):
        temp = 0
        for i in range(k):
            temp += c[i]
        right = k-1
        left = 0
        points = 0
        while right < len(c):
            if temp < l:
                points -= 1
            elif temp > u:
                points += 1
            temp -= c[left]
            left += 1
            right += 1
            if right >= len(c):
                break
            temp += c[right]
        return points

ob1 = Solution()
print(ob1.dietPlanPerformance([6,5,0,0], 2, 1, 5))

ইনপুট

[6,5,0,0] 2 1 5

আউটপুট

0

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

  2. পাইথনে বাইনারি ট্রির ম্যাক্সিমাম ডেপথ (Maximum Depth of Binary Tree)

  3. পাইথন ডিকশনারি পারফরম্যান্স অপ্টিমাইজ করা

  4. পাইথন রেগুলার এক্সপ্রেশনের পারফরম্যান্স অপ্টিমাইজ করবেন?