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

পাইথনে কার পুলিং সমস্যা সমাধান

একটি গাড়ির capacity খালি সিট আছে। গাড়িটি শুধু পূর্ব দিকে চলে। trips লিস্ট দেওয়া আছে, trip[i] = [num_passengers, start_location, end_location]। এটি i-তম ট্রিপের তথ্য: কতজন প্যাসেঞ্জার পিক আপ করা লাগবে এবং কোথায় পিক আপ ও ড্রপ অফ করতে হবে। লোকেশনগুলো গাড়ির স্ট্রাটিং পয়েন্ট থেকে কিমি দূরত্বে পূর্বে। সকল ট্রিপের জন্য প্যাসেঞ্জার পিক আপ ও ড্রপ অফ সম্ভব কিনা তা বুলিয়ান হিসেবে রিটার্ন করতে হবে।

ট্রিপস [[2,1,5],[3,3,7]] এবং capacity 5 হলে আউটপুট true।

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

  • stops নামে 1000 সাইজের অ্যারে 0 দিয়ে ফিল করুন
  • প্রতিটি ট্রিপ i-এর জন্য:
    • stops[i[1]] += i[0]
    • stops[i[2]] -= i[0]
  • stops এর প্রতিটি এলিমেন্টের জন্য:
    • capacity -= i
    • যদি capacity < 0 হয়, তবে false রিটার্ন
  • capacity >= 0 হলে true রিটার্ন

উদাহরণ

class Solution(object):
    def carPooling(self, trips, capacity):
        stops = [0 for i in range(1001)]
        for i in trips:
            stops[i[1]] += i[0]
            stops[i[2]] -= i[0]
        for i in stops:
            capacity -= i
            if capacity < 0:
                return False
        return capacity >= 0

ob = Solution()
print(ob.carPooling([[2,1,5],[3,3,7]], 5))

ইনপুট

[[2,1,5],[3,3,7]] 5

আউটপুট

True
  1. পাইথনে পান্ডাস ডেটাফ্রেমের সাবসেট সিলেক্ট করা (সিঙ্গল এবং মাল্টিপল কলাম)

  2. পাইথনে issuperset() ফাংশন

  3. পাইথনে লগিং (Logging) – সম্পূর্ণ গাইড

  4. পাইথনে প্রসেস সিঙ্ক্রোনাইজেশন ও পুলিং (Multiprocessing Pool)