#Challenge 15
1 messages · Page 1 of 1 (latest)
debe bajar siempre hacia abajo — midudev 😬
yo lo veo bien, no deja lugar a dudas
Reto 15
Challenge 15, un poco largo, pero funciona 🙂
La forma que se me ocurrió a mi fue partir en dos el array original, excluyendo el punto más alto y luego verificar si esos dos arrays suben y bajan consecutivamente. Que otra forma se les ocurrió a ustedes? 👀
Reto #15
Belleza y locura funcional. Amor y odio.
export default function checkSledJump(heights) {
const topHeightIndex = heights.indexOf( Math.max( ...heights ) )
const upHeights = heights.slice( 0, topHeightIndex + 1 )
const downHeights = heights.slice( topHeightIndex + 1 )
const up = ( num1, num2 ) => num1 < num2
const down = ( num1, num2 ) => num1 > num2
const isGoing = comparatorFn => ( _, i, list ) => ( i === list.length - 1 ) ? true : comparatorFn( list[ i ], list[ i + 1 ] )
const check = isGoingFn => list => list.length > 0 && list.every( isGoingFn )
return check( isGoing( up ) )( upHeights ) && check( isGoing( down ) )( downHeights )
}
Este me quedo un poco largo, pero creo que se entiende bien. No será el mejor, pero funciona!
||```js
function checkSledJump(heights) {
if (heights.length < 3) return false
const max = Math.max(...heights)
const maxIdx = heights.findIndex(item => item === max)
const ascHeights = heights.slice(0, maxIdx + 1)
const descHeights = heights.slice(maxIdx)
if (ascHeights.length <= 1) return false
if (descHeights.length <= 1) return false
const distinctAscHeights = [...new Set(ascHeights)]
const distinctDescHeights = [...new Set(descHeights)]
if (JSON.stringify(ascHeights) !== JSON.stringify(distinctAscHeights)) return false
if (JSON.stringify(descHeights) !== JSON.stringify(distinctDescHeights)) return false
if (JSON.stringify(ascHeights) !== JSON.stringify(ascHeights.sort())) return false
if (JSON.stringify(descHeights) !== JSON.stringify(descHeights.sort((a, b) => b - a))) return false
return true
}
El findIndex, lo puedes cambiar el por indexOf y te ahorras la arrow.
Sii, lo vi en la tuya y dije: auch!
Sencilla, clásica y eficiente. 👏 La programación funcional nos va a joder la vida a muchos 😅 (yo no soy muy fan, pero la verdad es que en este caso he querido abusar de ella, por tocar las narices, básicamente 😆 )
Como sabemos que solo se sube y baja una sola vez siempre de manera constante, lo único que hay que chequear es esa misma condición, y que si ya bajó, no vuelva a subir 😁
Primera versión, posiblemente lo revise nuevamente más tarde para ver qué se puede mejorar
Solución día 15, sin complicarme la vida
Reto 15
Solución Reto 15
Muchas gracias!!
Reto 15 :3
Molan esas llaves a lo c++ 😅
Como se llama la app para tomar esos screnshots de código?
Me parece más limpio así, aunque sé que no es así XS
🤣
Aquí va la mía para hoy:
Ahí va mi solución al reto 15 🦘
Bella.
Más bella.
Esta es mi solución para el reto
gracias!!
Mi solucion, bueno tambien lo hice rapido como ayer, porque la U no me da tiempo para analizar bien las cosas xD
Mi otra solucion
mi solucion para el dia, reto 15 ajjjaaj realmente no es la mejor solucion pero hoy no alcanzo a refactorizar asi que anyway jajaj
Mi solución 🙂