Encontrei esse problema enquanto trabalhava em outro desafio que estou fazendo para este site. Nesse desafio, utilizo " Mario Kart 8 Scoring ". A quantidade de pontos que o jogador em k é colocado é representada por esta matriz de 1 índice: [15,12,10,9,8,7,6,5,4,3,2,1]. Então, o 1º lugar recebe 15 pontos, o 2º lugar recebe 12 pontos, etc.
É fácil atribuir pontos como este, no entanto, a parte complicada vem com a maneira como eu manejo os empates. O que faço é dar a cada jogador que amarra a média dos pontos dados para cada local de amarração. Por exemplo, se apenas o 1º e o 2º empataram, ambos os jogadores recebem (15 + 12) / 2 = 13,5 pontos. (Nota: você pode arredondar para o int mais próximo, então 13 ou 14 também são aceitáveis.) Em seguida, o 3º - 12º lugar obtém a quantidade normal de pontos para sua posição.
Desafio
Dadas 12 pontuações inteiras não negativas que são classificadas de forma decrescente, produz o número de pontos que cada jogador recebe. Você também pode pegar a lista de pontos [15,12,10,9, ...] como entrada. Observe que o número de pontos que cada jogador recebe não depende dos valores reais das pontuações, mas como eles se comparam às outras pontuações.
Casos de teste
- [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]
- explicação: (12 + 10 + 9) / 3 = 10,3333
- [1,1,1,1,1,1,1,1,1,1,1,1] => [ 7,7,7,7,7,7,7,7,7,7,7, 7 ]
- explicação: (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]
- explicação: (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 ]
- explicação: (9 + 8 + 7) / 3 = 8, (5 + 4) / 2 = 4,5, (2 + 1) / 2 = 1,5
Relacionado: Classifique uma lista de pontuações com "pular"