Habitación 7: Ordenar Números de Lista
Mix.install([
{:explorer, "~> 0.11.1"},
{:kino, "~> 0.19.0"},
{:kino_explorer, "~> 0.1.25"},
{:kino_vega_lite, "~> 0.1.13"},
{:helpers, path: Path.expand("./helpers", __DIR__)}
])
defmodule Room do
require Explorer.DataFrame, as: DF
def verify(answer) do
case answer do
[150, 375, 890] -> Helpers.Messages.correct(
"09.livemd",
"¡Muy bien!, Es el valor buscado."
)
_ -> Helpers.Messages.error(
"No es la respuesta correcta. Inténtalo nuevamente."
)
end
|> Kino.Markdown.new()
end
end
Contexto
Desde el módulo de control, detectan múltiples objetos orbitando alrededor de la estación espacial ⚠️.
Es urgente analizar sus coordenadas para prevenir colisiones 🌌💥.
Desafío de la habitación
🚀 Ordena y extrae los tres siguientes datos clave:
- El objeto más cercano a la estación.
- El objeto más lejano.
- El objeto que se encuentra en el centro de la lista (una vez ordenada).
Ordena la lista ocupando la
función Enum.sort/1 y utilizando los índices
necesarios para crear una nueva lista con las
coordenadas requeridas.
Establece tu respuesta
coordenadas =
[540, 320, 890, 150, 430, 270]
count = Enum.count(coordenadas)
valor_medio =
if rem(count, 2) == 0 do
largo = div(count, 2)
izquierda = nil
derecha = nil
(izquierda + derecha)
|> div(2)
else
Enum.at(coordenadas, div(count, 2))
end
respuesta = [
nil,
valor_medio,
nil
]
Verifica tu respuesta
Room.verify(respuesta)