Hackerrank: Maximum Perimeter Triangle en Scala.

En este post te voy a explicar como resolver el challenge: Maximum Perimeter Triangle de Hackerrank usando Scala.

Primeros pasos.

Este code challenge consiste en encontrar el mayor triángulo no degenerado (non-degenerated triangle). Un triángulo no degenerado para el contexto del problema son tres valores numéricos A, B, C que cumplen con la condición: A + B > C. Las condiciones de un triángulo no degenerado pueden ser distintas dependiendo de la página que consultes.

Vas a recibir una arreglo, que debería estar ordenado ascendentemente. De este, tomas los primeros elementos, que deben cumplir con la condición A + B > C. Empiezas con el índice cero, y terminas con el índice 2. Iteras cada posible elemento secuencialmente.

Si la tripleta cumple con la condición se conserva. Se almacenan todas las tripletas que cumplan con la condición. Al terminar de iterar el arreglo, obtienes un listado del que debes de obtener la tripleta con el valor máximo A + B+ C.

Puede ocurrir que el arreglo no contenga ni un triángulo no degenerado, en cuyo caso retornas un arreglo con un elemento: -1.

Si existe un valor máximo de triángulo, se retorna un arreglo con los elementos A, B y C.

Ejemplo:

 

Gustavo Sánchez