কম্পিউটার

3D আকারের অভিক্ষেপ এলাকা


ধরুন একটি N x N গ্রিড আছে, আমরা কিছু 1 x 1 x 1 কিউব রাখি যা x, y, এবং z-এর সাথে অক্ষ-সারিবদ্ধ। এখানে প্রতিটি মান v =গ্রিড[i][j] গ্রিড সেলের (i, j) উপরে স্থাপন করা v কিউবের একটি টাওয়ার দেখাচ্ছে। আমরা xy, yz, এবং zx সমতলগুলিতে এই কিউবগুলির অভিক্ষেপ দেখি। এখানে, উপরের, সামনের এবং পাশের ভিউ থেকে কিউবগুলি দেখার সময় আমরা প্রজেকশনটি দেখছি। আমাদের তিনটি অভিক্ষেপের মোট ক্ষেত্রফল বের করতে হবে।

সুতরাং, যদি ইনপুটটি [[1,2],[3,4]]

এর মত হয়

3D আকারের অভিক্ষেপ এলাকা

তাহলে আউটপুট হবে 17।

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

  • xy :=0, yz :=0, xz :=0
  • গ্রিডে প্রতিটি সারির সূচী r এবং সারির জন্য, করুন
    • yz :=yz + সারির সর্বোচ্চ
    • প্রতিটি কলামের সূচী c এবং সারিতে থাকা কলামের জন্য, করুন
      • যদি গ্রিড[r][c]> 0 অ-শূন্য হয়, তাহলে
        • xy :=xy + 1
    • গ্রিডে প্রতিটি কলের জন্য, করুন
      • xz :=xz + কলের সর্বোচ্চ
  • xy + yz + xz ফেরত দিন

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

উদাহরণ

class Solution(object):
   def projectionArea(self, grid):
      xy = 0
      yz = 0
      xz = 0
      for r, row in enumerate(grid):
         yz += max(row)
         for c, col in enumerate(row):
            if grid[r][c] > 0:
               xy += 1
            for col in zip(*grid):
               xz += max(col)
      return xy + yz + xz
ob = Solution()
print(ob.projectionArea([[1,2],[3,4]]))

ইনপুট

[[1,2],[3,4]]

আউটপুট

17

  1. একটি বর্গক্ষেত্রের ভিতরে একটি পাতার ক্ষেত্রফল?

  2. C++ এ আয়তক্ষেত্র এলাকা

  3. পাইথনে বহুভুজের এলাকা খুঁজে বের করার জন্য প্রোগ্রাম

  4. পাইথনের বৃহত্তম ত্রিভুজ এলাকা