ฉันพบปัญหานี้ในขณะที่ทำงานกับความท้าทายอื่นที่ฉันทำกับไซต์นี้ ในความท้าทายนั้นฉันใช้ " Mario Kart 8 Scoring " จำนวนคะแนนที่ผู้เล่นได้รับในลำดับที่kจะได้รับการแสดงโดยอาเรย์ 1 ที่มีการจัดทำดัชนีนี้: [15,12,10,9,8,7,6,7,6,5,4,3,2,1] อันดับที่ 1 ได้รับ 15 คะแนนอันดับที่ 2 ได้รับ 12 คะแนน ฯลฯ
มันง่ายพอที่จะกำหนดคะแนนเช่นนี้อย่างไรก็ตามส่วนที่ยุ่งยากมาพร้อมกับวิธีที่ฉันจัดการกับความสัมพันธ์ สิ่งที่ฉันทำคือให้คะแนนเฉลี่ยที่ผู้เล่นแต่ละคนได้รับในแต่ละตำแหน่ง ตัวอย่างเช่นหากมีการผูก 1 และ 2 ผู้เล่นทั้งสองจะได้รับ (15 +12) / 2 = 13.5 คะแนน (หมายเหตุ: คุณได้รับอนุญาตให้ปัดเศษเป็น int ที่ใกล้ที่สุดดังนั้นทั้ง 13 หรือ 14 จึงเป็นที่ยอมรับเช่นกัน) จากนั้นอันดับที่ 3-12 จะได้รับคะแนนตามปกติสำหรับตำแหน่งของพวกเขา
ท้าทาย
ได้รับ 12 จำนวนเต็มไม่เป็นลบที่เรียงลำดับลดลงส่งออกจำนวนคะแนนที่ผู้เล่นแต่ละคนได้รับ คุณสามารถใช้รายการคะแนน [15,12,10,9, ... ] เป็นอินพุตได้ โปรดทราบว่าจำนวนคะแนนที่ผู้เล่นแต่ละคนได้รับไม่ได้ขึ้นอยู่กับค่าจริงของคะแนน แต่จะเปรียบเทียบกับคะแนนอื่น ๆ ได้อย่างไร
กรณีทดสอบ
- [21,21,15,14,12,9,6,5,4,3,2,1] => [ 14,14 , 10,9,8,7,6,,,5,4,3,2, 1]
- [20,15,15,15,10,9,8,7,6,5,4,3] => [15, 10,10,10 , 8,7,6,5,4,3,2 1]
- คำอธิบาย: (12 + 10 + 9) / 3 = 10.3333
- [1,1,1,1,1,1,1,1,1,1,1,1,1] => [ 7,7,7,7,7,7,7,7,7,7,7,7, 7 ]
- คำอธิบาย: (15 + 12 + 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1) / 12 = 6.8333
- [20,20,20,20,10,10,10,9,8,7,6,5] => [ 12,12,12,12 , 7,7,7 , 5,4,3,2, 1]
- คำอธิบาย: (15 + 12 + 10 + 9) / 4 = 11.5, (8 + 7 + 6) / 3 = 7
- [100,99,98,95,95,95,94,93,93,93,91,91] => [15,12,10, 8,8,8 , 6, 5,5 , 3, 2, 2 ]
- คำอธิบาย: (9 + 8 + 7) / 3 = 8, (5 + 4) / 2 = 4.5, (2 + 1) / 2 = 1.5
ที่เกี่ยวข้อง: จัดอันดับรายการคะแนนด้วย "ข้าม"