El promedio de las antípodas

En este desafío, recibirás un arreglo y deberás obtener uno más pequeño siguiendo tres pasos:

  • Divide el arreglo en dos partes de igual longitud. Si el arreglo tiene una longitud impar, elimina el número central para obtener dos partes iguales.
  • Suma cada número de la primera parte con el número correspondiente de la segunda parte invertida para obtener un nuevo arreglo con la misma longitud que las dos partes anteriores.
  • Divide entre dos cada número del arreglo final.

Dado un arreglo de enteros arr, implementa una función que devuelva un nuevo arreglo aplicando el algoritmo anterior.

Ejemplos

antipodesAverage([1, 2, 3, 4]) ➞ [2.5, 2.5]
// Parte izquierda = [1, 2]
// Parte derecha invertida = [4, 3]
// Arreglo resultante de sumar cada par = [5, 5]
// Cada número se divide entre dos = [2.5, 2.5]

antipodesAverage([1, 2, 3, 4, 5]) ➞ [3, 3]
// La longitud del arreglo es impar, por lo que se elimina el número 3 (el del centro)
// Parte izquierda = [1, 2]
// Parte derecha invertida = [5, 4]
// Suma = [6, 6]
// División entre dos = [3, 3]

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

Notas

  • Cada arreglo arr proporcionado contendrá al menos dos números.
  • Los números del arreglo arr siempre serán enteros, ya sean positivos o negativos, pero el arreglo final también puede contener números de punto flotante, positivos o negativos (consulta los ejemplos #1 y #3).
  • Puedes implementar los tres pasos por separado o combinarlos para obtener el mismo resultado.

Ejemplo en Swift

antipodesAverage([1, 2, 3, 4]) // [2.5, 2.5]