ภาพรวม
โจทย์หาจำนวนโดมิโนขนาด 1×2 สูงสุดที่วางบนกระดาน n×m ได้โดยไม่ทับซ้อนและไม่ล้นขอบ เนื่องจากโดมิโนแต่ละอันครอบคลุม 2 ช่อง คำตอบคือพื้นที่หาร 2 ปัดเศษทิ้ง
สูตร
max_dominos = (n × m) // 2
ตัวอย่าง
อินพุต: n=5, m=3
พื้นที่ = 15, โดมิโนสูงสุด = 15 // 2 = 7
โค้ด Python
class Solution:
def solve(self, n, m):
t = n * m
return t // 2
ob = Solution()
print(ob.solve(5, 3))
อธิบาย
- กระดาน 5×3 มี 15 ช่อง
- โดมิโน 1×2 ครอบ 2 ช่อง
- วางได้สูงสุด 7 อัน (ครอบ 14 ช่อง) เหลือ 1 ช่องว่าง
- ใช้ integer division (
//) เพื่อปัดเศษทิ้ง
ขยายความ
หากโดมิโนเป็นขนาด a×b สูตรทั่วไปคือ (n*m) // (a*b) แต่ต้องพิจารณาการจัดวางจริงด้วย (ไม่ใช่ทุกกรณีที่หารลงตัวได้)
ผลลัพธ์
7