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

পাইথনে শাফল করা কিউ থেকে মানুষের মূল ক্রম ফেরানো

একটি 2D ম্যাট্রিক্স দেওয়া আছে যেখানে প্রতিটি সারি [height, count] ধারণ করে। count বলতে է সেই ব্যক্তির সামনে কতজন তার সমান বা বেশি উচ্চতার মানুষ আছে। শাফল করা এই কিউর মূল ক্রম ফেরাতে হবে।

উদাহরণ: [[2,2],[4,0],[5,0]] হলে আউটপুট [[4,0],[5,0],[2,2]]।

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

  • উচ্চতা বর্ধমান এবং কাউন্ট অবরোহী ক্রমে সর্ট করুন
  • আউটপুট তালিকা None দিয়ে শুরু করুন
  • প্রতিটি (h,c) জন্য উপযুক্ত খালি স্লট খুঁজে বসান
  • ফলাফল ফেরত দিন

উদাহরণ কোড

class Solution:
    def solve(self, matrix):
        N = len(matrix)
        matrix.sort(key=lambda x: [x[0], -x[1]])
        ans = [None] * N
        for h, c in matrix:
            temp = 0
            for i, num in enumerate(ans):
                if temp >= c and num is None:
                    ans[i] = [h, c]
                    break
                if num is None or num[0] >= h:
                    temp += 1
        return ans

ob = Solution()
matrix = [
    [2, 2],
    [4, 0],
    [5, 0]
]
print(ob.solve(matrix))

ইনপুট

[[2, 2],[4, 0],[5, 0]]

আউটপুট

[[4, 0], [5, 0], [2, 2]]
  1. পাইথনে ভের্টেক্স-টু-ভের্টেক্স রিচেবিলিটি ম্যাট্রিক্স ক্যালকুলেট করার প্রোগ্রাম

  2. পাইথনে ম্যাট্রিক্সের ট্রান্সপোজ বের করা

  3. পাইথন প্রোগ্রাম: দুটি ম্যাট্রিক্স যোগ (Matrix Addition)

  4. পাইথন প্রোগ্রাম: দুটি ম্যাট্রিক্স গুণ (Matrix Multiplication)