ภาพรวม
ให้อาร์เรย์ salary ที่มีค่าต่างกันทั้งหมด ต้องการหาค่าเฉลี่ยของเงินเดือนหลังจากตัดค่าต่ำสุดและค่าสูงสุดออก
ตัวอย่าง
salary = [8000,6000,2000,8500,2500,4000]
ค่าต่ำสุด = 2000, ค่าสูงสุด = 8500
เหลือ: [8000,6000,2500,4000] → ค่าเฉลี่ย = (8000+6000+2500+4000)/4 = 5125.0
ขั้นตอนการแก้ปัญหา
- ลบค่าต่ำสุดออกจากลิสต์:
salary.remove(min(salary)) - ลบค่าสูงสุดออกจากลิสต์:
salary.remove(max(salary)) - คืนค่า
sum(salary) / len(salary)
ตัวอย่างโค้ด (Python)
def solve(salary):
salary.remove(min(salary))
salary.remove(max(salary))
return sum(salary) / len(salary)
salary = [8000,6000,2000,8500,2500,4000]
print(solve(salary))
อินพุต
[8000,6000,2000,8500,2500,4000]
เอาต์พุต
5125.0
หมายเหตุ
- วิธีนี้แก้ไขลิสต์ต้นฉบับ (mutates) หากต้องการรักษาเดิม ให้ copy ก่อน
- สมมติว่ามีอย่างน้อย 3 พนักงาน และค่าต่างกันทั้งหมด