এই আর্টিকেলে আমরা নিচের সমস্যা সমাধানের কথা শিখব।
সমস্যা: n সংখ্যক অ্যাক্টিভিটি তাদের রেসপেক্টিভ স্টার্টিং এবং ফিনিশ টাইমসহ দেওয়া আছে। আমাদের ম্যাক্সিমাম সংখ্যক অ্যাক্টিভিটি সিলেক্ট করতে হবে যা একটি ব্যক্তি পারফর্ম করতে পারে, শর্ত ये যে সে একবারে একটি অ্যাক্টিভিটিতে কাজ করবে।
ভেরিয়েবল নোটেশন:
N - মোট অ্যাক্টিভিটির সংখ্যা
S - সব অ্যাক্টিভিটির স্টার্ট টাইম ধারণকারী অ্যারে
F - সব অ্যাক্টিভিটির ফিনিশ টাইম ধারণকারী অ্যারে
চলুন নিচের ইমপ্লিমেন্টেশনে সমাধানটি পর্যবেক্ষণ করি।
# 그리디 অ্যাপ্রোচ
উদাহরণ
# একটি ব্যক্তি দ্বারা করা যাব সর্বোচ্চ এক্টিভিটির সংখ্যা
def Activities(s, f):
n = len(f)
print("The selected activities are:")
# প্রথম এক্টিভিটি সবসময় সিলেক্টেড
i = 0
print(i, end=" ")
# বাকি এক্টিভিটিগুলোর জন্য
for j in range(n):
# যদি স্টার্ট টাইম আগের এক্টিভিটির ফিনিশ টাইম থেকে বড় বা সমান হয়
if s[j] >= f[i]:
print(j, end=" ")
i = j
# মেইন
s = [1, 2, 0, 3, 2, 4]
f = [2, 5, 4, 6, 8, 8]
Activities(s, f)
আউটপুট
The selected activities are: 0 1

সभी ভেরিয়েবল লোকাল স্কোপে ঘোষণা করা হয়েছে এবং তাদের রেফারেন্স উপরের চিত্রে দেখা যাচ্ছে।
উপসংহার
এই আর্টিকেলে আমরা শিখেছি কিভাবে অ্যাক্টিভিটি সিলেকশন প্রব্লেমের পাইথন প্রোগ্রাম লিখতে হয়।