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

পাইথনে এমপ্লয়ি ইম্পরটেন্স (Employee Importance)


সমস্যা বিবরণ

কর্মচারীদের তথ্য: [id, importance, [subordinates]]। একটি কর্মচারীর id দেওয়া থাকলে, সে এবং তার সব অধীনস্থদের (রিকার্সিভলি) মোট ইম্পরটেন্স বের করুন।

উদাহরণ

employees = [[1,5,[2,3]],[2,3,[]],[3,3,[]]], id = 1 → আউটপুট: 11

Emp1 (5) + Emp2 (3) + Emp3 (3) = 11।

এলগরিদম (BFS)

  1. দুটি ম্যাপ: weight[id] = importance, leader[id] = subordinates।
  2. res = weight[id], queue = leader[id]।
  3. while queue:
    • node = queue.pop()।
    • res += weight[node]।
    • queue.extend(leader[node])।
  4. res রিটার্ন করুন।

পাইথন বাস্তবায়ন

class Solution:
    def getImportance(self, employees, id):
        weight = {}
        leader = {}
        for e in employees:
            weight[e[0]] = e[1]
            leader[e[0]] = e[2]
        
        res = weight[id]
        queue = leader[id][:]  # কপি
        while queue:
            node = queue.pop()
            res += weight[node]
            if leader[node]:
                queue.extend(leader[node])
        return res

ob = Solution()
print(ob.getImportance([[1,5,[2,3]],[2,3,[]],[3,3,[]]], 1))  # 11

ইনপুট / আউটপুট

ইনপুট: [[1,5,[2,3]],[2,3,[]],[3,3,[]]], 1
আউটপুট: 11
  1. পাইথনে issuperset() ফাংশন

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

  3. পাইথনে Namedtuple

  4. পাইথন টাপলকে PostgreSQL ডাটাবেসে ইনসার্ট করার পদ্ধতি