ภาพรวม
โจทย์หาจำนวนช่องที่เหลือบนกระดาน n×n หลังจากลบช่องที่อยู่บนเส้นทแยงมุมทั้ง 4 มุม (main diagonal และ anti-diagonal)
ตัวอย่าง n=4
| X | O | O | X |
| O | X | X | O |
| O | X | X | O |
| X | O | O | X |
X = ลบ, O = เหลือ → เหลือ 8 ช่อง
สูตรคณิตศาสตร์
result = n² - 2n + (n % 2)
n²: ช่องทั้งหมด2n: เส้นทแยง 2 เส้น (main + anti) แต่ละเส้น n ช่องn % 2: กรณี n คี่ จุดกึ่งกลางถูกนับซ้ำ 2 ครั้ง ต้องเพิ่มกลับ 1
โค้ด Python
class Solution:
def solve(self, n):
return n*n - 2 * n + (n % 2)
ob = Solution()
print(ob.solve(4))
ตรวจสอบ
| n | n² | 2n | n%2 | ผลลัพธ์ |
|---|---|---|---|---|
| 3 | 9 | 6 | 1 | 4 |
| 4 | 16 | 8 | 0 | 8 |
| 5 | 25 | 10 | 1 | 16 |
ผลลัพธ์
8