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
arrproporcionado contendrá al menos dos números. - Los números del arreglo
arrsiempre 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]