A média dos antípodas

Neste desafio, você recebe um array e, em seguida, deve obter um array menor seguindo três etapas:

  • Divida o array em duas partes de mesmo comprimento. Se o array fornecido tiver comprimento ímpar, você deverá eliminar o número que está no meio do array para obter duas partes iguais.
  • Some cada número da primeira parte com cada número da segunda parte invertida, obtendo um novo array único com o mesmo comprimento das duas partes anteriores.
  • Divida por dois cada número do array final.

Dado um array de inteiros arr, implemente uma função que retorne um novo array aplicando o algoritmo acima.

Exemplos

antipodes_average([1, 2, 3, 4]) ➞ [2.5, 2.5]
# Left part = [1, 2]
# Reversed right part = [4, 3]
# Array resulting from the sum of each pair = [5, 5]
# Each number is divided by two = [2.5, 2.5]

antipodes_average([1, 2, 3, 4, 5]) ➞ [3, 3]
# The length of array is odd, number 3 (in the middle) is eliminated
# Left = [1, 2]
# Reversed right = [5, 4]
# Sum = [6, 6]
# Division by two = [3, 3]

antipodes_average([-1, -2]) ➞ [-1.5]
#  (-1 + -2) / 2 = [-1.5]

Observações

  • Todo arr fornecido conterá pelo menos dois números.
  • No arr fornecido, os números serão sempre inteiros (positivos ou negativos), mas os números do array final retornado também podem ser do tipo float (positivos ou negativos; consulte os exemplos #1 e #3).
  • Você pode realizar as três etapas separadamente ou pensar em como sintetizar o algoritmo para obter o resultado.