เกม 3 คน: เลือก 3 กอง P2 เลือกมากสุด P1 เลือกอันดับ 2 P3 เลือกน้อยสุด กลยุทธ์ optimal: เรียง piles จากน้อยไปมาก P1 ควรหยิบอันดับ 2 จากท้าย (index -2) ทุกครั้ง ลบ 3 กองทีละรอบ (มากสุด, อันดับ 2, น้อยสุด) รวมค่าที่ P1 หยิบ
ขั้นตอนการทำงาน
- เรียง piles จากน้อยไปมาก
- วนลูปจน piles ว่าง: เพิ่ม piles[-2] เข้า ans, ลบ piles[-2], piles[-1], piles[0]
- คืน ans
ตัวอย่างโค้ด
def solve(piles):
piles.sort()
ans = 0
while piles:
ans += piles[-2]
del piles[-2]
del piles[-1]
del piles[0]
return ans
piles = [2, 4, 1, 2, 7, 8]
print(solve(piles)) # Output: 9
อินพุต/เอาต์พุต
Input: [2,4,1,2,7,8] Output: 9
รอบ1: เลือก (2,7,8) -> P1 ได้ 7, รอบ2: เลือก (1,2,4) -> P1 ได้ 2, รวม 9