Saya mengalami masalah ini saat mengerjakan tantangan lain yang saya buat untuk situs ini. Dalam tantangan itu saya menggunakan " Mario Kart 8 Scoring ". Jumlah poin pemain di tempat k diwakili oleh array 1-diindeks ini: [15,12,10,9,8,7,6,5,4,4,3,2,1]. Jadi posisi 1 mendapat 15 poin, posisi 2 mendapat 12 poin, dll.
Cukup mudah untuk menetapkan poin seperti ini, namun bagian yang sulit datang dengan bagaimana saya menangani ikatan. Yang saya lakukan adalah memberi setiap pemain yang mengikat rata-rata poin yang diberikan untuk setiap tempat yang mengikat. Misalnya, jika hanya 1 dan 2 terikat, maka kedua pemain mendapatkan (15 + 12) / 2 = 13,5 poin. (Catatan: Anda diizinkan untuk membulatkan ke int terdekat, sehingga 13 atau 14 keduanya juga dapat diterima.) Kemudian tempat ke-3 - 12 mendapatkan jumlah poin normal untuk posisi mereka.
Tantangan
Diberikan 12 skor integer non-negatif yang semakin diurutkan, output jumlah poin setiap pemain. Anda juga dapat menggunakan daftar poin [15,12,10,9, ...] sebagai input. Perhatikan bahwa jumlah poin yang didapat setiap pemain tidak tergantung pada nilai aktual skor, tetapi bagaimana mereka membandingkannya dengan skor lainnya.
Uji Kasus
- [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]
- penjelasan: (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, 7 ]
- Penjelasan: (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]
- penjelasan: (15 + 12 + 10 + 9) / 4 = 11,5, (8 + 7 + 6) / 3 = 7
- [100,99,98,95,95,95,94,93,93,92,91,91] => [15,12,10, 8,8,8 , 6, 5,5 , 3, 2, 2 ]
- penjelasan: (9 + 8 + 7) / 3 = 8, (5 + 4) / 2 = 4,5, (2 + 1) / 2 = 1,5