কম্পিউটার

পাইথনে কর্মচারীর গুরুত্ব


ধরুন আমাদের কাছে কর্মচারীর তথ্যের একটি ডেটা স্ট্রাকচার আছে, সেখানে কর্মচারীর অনন্য আইডি, তার গুরুত্বের মান এবং তার সরাসরি অধস্তনদের আইডি রয়েছে। উদাহরণ হিসাবে, কর্মচারী 1 হল কর্মচারী 2 এর নেতা এবং কর্মচারী 2 হল কর্মচারী 3 এর নেতা। এবং ধরুন তাদের গুরুত্বের মান যথাক্রমে 15, 10 এবং 5। তারপরে কর্মচারী 1 এর একটি ডেটা কাঠামো রয়েছে যেমন [1, 15, [2]], এবং কর্মচারী 2 এর রয়েছে [2, 10, [3]], এবং কর্মচারী 3 এর রয়েছে [3, 5, []]।

সুতরাং, যদি আমাদের কাছে একটি কোম্পানির কর্মচারীর তথ্য থাকে, এবং একটি কর্মচারী আইডি থাকে, তাহলে আমাদের এই কর্মচারী এবং তার সমস্ত অধীনস্থদের মোট গুরুত্বের মূল্য খুঁজে বের করতে হবে৷

সুতরাং, যদি ইনপুট হয় [[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1, তাহলে আউটপুট হবে 11, Emp1 হিসাবে গুরুত্ব মান 5 আছে, এবং Emp1 এর দুটি সরাসরি অধস্তন রয়েছে, তারা হল − Emp2 এবং Emp3। এখন উভয়েরই গুরুত্ব মান 3 আছে। সুতরাং, Emp1 এর মোট গুরুত্ব মান হল 5 + 3 + 3 =11।

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

  • ওজন :=একটি নতুন মানচিত্র, নেতা :=একটি নতুন মানচিত্র
  • প্রতিটি কর্মচারীর জন্য, করুন
    • ওজন[e[0]] :=e[1]
    • নেতা[e[0]] :=e[2]
  • res :=0
  • res :=res + weight[id]
  • সারি :=নেতা[আইডি]
  • যখন সারি অ-শূন্য, do
    • new_queue :=একটি নতুন তালিকা
    • নোড :=সারি থেকে শেষ উপাদান মুছুন
    • res :=res + weight[node]
    • যদি লিডার[নোড] অ-শূন্য হয়, তাহলে
      • নতুন_সারি :=নতুন_সারি + নেতা[নেতার আকার]
    • সারি :=সারি + নতুন_সারি
  • রিটার্ন রিটার্ন

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

উদাহরণ

class Solution(object):
   def getImportance(self, employees, id):
      weight = {}
      leader = {}
      for e in employees:
         weight[e[0]] = e[1]
         leader[e[0]] = e[2]
      res = 0
      res += weight[id]
      queue = leader[id]
      while queue:
         new_queue = []
         node = queue.pop()
         res += weight[node]
         if leader[node]:
            new_queue += leader[node]
         queue += new_queue
      return res
ob = Solution()
print(ob.getImportance([[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1))

ইনপুট

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

আউটপুট

11

  1. issuperset() পাইথনে

  2. পাইথনে আন্ডারস্কোর(_)

  3. পাইথনে নাম দেওয়া টুপল

  4. কিভাবে একটি PostgreSql ডাটাবেসে একটি পাইথন টিপল সন্নিবেশ করান?