• Skip to primary navigation
  • Skip to main content
  • Skip to footer

Cursos online y materiales digitales para estudiantes y desarrolladores web

  • CURSOS
  • BLOG
  • QUIÉN SOY
  • FAQ
  • ACCEDER
  • CONTACTO

reto

Reto resuelto: Walter White y los códigos de las bolsas de meta azul

Publicado el 27/05/2020 por Ada Leave a Comment

Breaking Bad

Breaking Bad

Programación

Procesar una cadena de números


La semana pasada recibíamos un reto desde Alburquerque, en Nuevo México (EEUU). El mismísimo Walter White necesitaba que le echáramos una mano con los códigos de las bolsas de meta azul que iban a traficar y que os contábamos en esta entrada.

Enunciado del reto:

El reto decía:

Señorita Ada:
A partir de una lista de códigos de bolsas de meta azul queremos identificar cuál es “diferente” a las demás: si las demás son pares, cuál es la impar; y viceversa.
Dispondrá de una CADENA de códigos y deberá mostrarnos cuál de ellos no se corresponde con el resto.
Ejemplo de entrada: “1234 2345 3456 1358 2360 2246 8088”
Ejemplo de salida: 2345
Nota: solo habrá una bolsa “diferente”, por lo que validar esa información no es necesario.

Y una vez más dimos con, al menos, dos maneras de resolverlo:

  • La primera, en la que almacenamos en dos arrays (pares e impares) los números recorriendo uno a uno los elementos de la lista dada y comprobando cuál de los dos arrays contiene un único elemento.
  • La segunda, del estilo a la anterior pero mucho más compacta, y que utiliza la función filter() de Javascript:

Pero recordad, ¡no hay una única solución al problema; hay soluciones mejores y soluciones peores!

¿Qué aprenderás en el vídeo?

En este vídeo veremos:

  • Cómo transformar una cadena de texto en un array utilizando la función split().
  • Cómo insertar elementos en un array con Javascript utilizando la función push().
  • Un ejemplo práctico de uso del operador ternario (? :).
  • Y por último, cómo trabajar con la función filter() para convertir un array en otro con una serie de elementos que cumplen con una condición (¡ojo, utilizamos una función arrow).

Vídeos y código fuente

¡¿A qué esperas?! ¡Echa un ojo al vídeo!

Código fuente de la solución
[restrict] [/restrict] [not_logged_in]¡Ups! Este contenido es solo para codelovers, ¿no te has registrado aún? ¡Hazlo ahora! ¡Regístrate o accede!
[/not_logged_in]

¿Tú cómo lo habrías hecho? ¡Deja tus ideas en los comentarios!

Y si quieres compartir código, te recomiendo que utilices alguna herramienta online de testing de código como Codepen, JSFiddle, PlayCode, etc. o repositorios como GitHub, GitLab, BitBucket…

Filed Under: Ejercicio resuelto, Reto Tagged With: breaking bad, cadenas, javascript, números, reto

Reto: #0000FF oscuro casi #000000

Publicado el 25/05/2020 por Ada 12 Comments

Azul oscuro casi negro

Azul oscuro casi negro

Programación

Cambio de bases


Acceder al reto en formato vídeo

Daniel Sánchez Arévalo, director de AzulOscuroCasiNegro, quiere hacer un remake de su película del 2006. Pero necesita darle un toque un poco más moderno y lo primero que ha pensado es cambiarle el título de la película por algo más “digital”. De ahí el nombre de este reto.

Al final se lió la manta a la cabeza y el remake no va a tener nada que ver. Trata de códigos, colores… y ahí entramos nosotros en el juego. Nos envió un mensaje que decía así:

Hola, Ada:
Necesito un programa sencillito que transforme un código en RGB en hexadecimal. La idea es que, a partir de tres variables (rojo, verde y azul) devuelva el código de color en hexadecimal.
Ejemplo de entrada: 0, 36, 255
Ejemplo de salida: #0024ff

Hay varias maneras de representar un color digital. En todas ellas necesitamos “cuánto” rojo, verde y azul (RGB) hay en la composición del color final.

Podemos hacerlo con tres números del 0 al 255, también llamado representación RGB; por ejemplo: 255, 35, 123.

También podemos transformar cada uno de esos números en su equivalente en hexadecimal (de 00 a FF); por ejemplo, #FF237B, de manera que en hexadecimal, FF es el 255, 23 es el 36 y 7B es el 123.

Y aquí tenemos al cansino de Edu preguntando…

Si las tres variables necesitan el mismo proceso, podrías crear una función, ¿no? ¿Sabes que en Javascript hay una función para transformar las bases? Tendrás que poner las letras en mayúsculas, ¿no?

“Venga, Edu, que este reto está tirao, no me líes“, le dije. Aún así, trataré de pensar alguna alternativa a lo que tengo en mi cabeza…

¿Tú cómo lo harías? ¡Deja tus ideas en los comentarios!

Y si quieres compartir código, te recomiendo que utilices alguna herramienta online de testing de código como Codepen, JSFiddle, PlayCode, etc. o repositorios como GitHub, GitLab, BitBucket…

Filed Under: Reto Tagged With: bases, javascript, números, reto

Reto resuelto: gestión de pasajeros del expreso de Hogwarts

Publicado el 21/05/2020 por Ada Leave a Comment

Harry Potter

Harry Potter

Programación

Procesar un array bidimensional


Una semana más recibimos un reto desde el mismo Colegio Hogwarts de Magia y Hechicería que titulamos “Gestión de pasajeros del expreso de Hogwarts“.

Enunciado del reto:

El reto decía:

Señorita Ada:
Necesitamos controlar el número de pasajeros que llegan al final de un trayecto teniendo en cuenta cuántos suben y bajan en cada parada.
Le facilitaremos una lista del tipo: [s1,b1][s2,b2][s3,b3]… donde en cada par de elementos va el número de pasajeros que se suben (s) y el número de pasajeros que se bajan (b). Así, procesando esa lista, sabremos el número de pasajeros finales que debería llegar a fin de trayecto.
Ejemplo de entrada: [[7,0][8,2][9,5][3,1]]
Ejemplo de salida: 19 pasajeros
* Nota: En el primer par de números, el segundo siempre será 0 porque en la estación de origen no se baja nadie. No hace falta controlar ese número: se lo facilitaremos siempre de manera correcta.

Para solventarlo se nos ocurrió hacerlo de dos maneras:

  • Una clásica, que desde el punto de vista de la algoritmia es aplicable a la mayoría del resto de lenguajes de programación de alto nivel (Java, C, C++…).
  • Otra propia de Javascript que utiliza una interesante función llamada reduce.

Pero recordad, ¡no hay una única solución al problema; hay soluciones mejores y soluciones peores!

¿Qué aprenderás en el vídeo?

Así que en este vídeo os explico:

  • Cómo procesar un array bidimensional utilizando un bucle for.
  • Cómo funciona la función reduce de Javascript para convertir un array en un único valor.
  • Cómo trabajar con la función reduce y una función arrow pasándole el array de dos modos diferentes.

Vídeos y código fuente

¡Al lío! ¡Echa un ojo al vídeo!

Código fuente de la solución
[restrict] [/restrict] [not_logged_in]¡Ups! Este contenido es solo para codelovers, ¿no te has registrado aún? ¡Hazlo ahora! ¡Regístrate o accede!
[/not_logged_in]

¿Tú cómo lo habrías hecho? ¡Deja tus ideas en los comentarios!

Y si quieres compartir código, te recomiendo que utilices alguna herramienta online de testing de código como Codepen, JSFiddle, PlayCode, etc. o repositorios como GitHub, GitLab, BitBucket…

Filed Under: Ejercicio resuelto, Reto Tagged With: array, harry potter, javascript, reto

Reto: Walter White y los códigos de las bolsas de meta azul

Publicado el 18/05/2020 por Ada 2 Comments

Breaking Bad

Breaking Bad

Programación

Procesar una cadena de números en dos arrays


Acceder al reto en formato vídeo

Walter White y Jesse Pinkman se han dado cuenta de que la última remesa de bolsas de meta azul que han fabricado no es tan pura como las anteriores. ¡Pero no quieren desperdiciarla!

Así que han decidido hacer lo siguiente para que nadie más se dé cuenta: en cada lote de bolsas van a meter una de mala calidad. Y para diferenciarla de las demás van a etiquetarla con un número “diferente”. Ese número será un número par si el resto de bolsas están identificadas por números impares; o será un número impar si el resto se identifican por números pares.

Y, cómo no, esta misma mañana recibí, a través de Edu, una notificación desde Alburquerque (qué calor).

Señorita Ada:
A partir de una lista de códigos de bolsas de meta azul queremos identificar cuál es “diferente” a las demás: si las demás son pares, cuál es la impar; y viceversa.
Dispondrá de una CADENA de códigos y deberá mostrarnos cuál de ellos no se corresponde con el resto.
Ejemplo de entrada: “1234 2345 3456 1358 2360 2246 8088”
Ejemplo de salida: 2345
Nota: solo habrá una bolsa “diferente”, por lo que validar esa información no es necesario.

Y Edu, para no variar, me puso en situación:

¿Si no es un array, cómo vas a procesar los valores? Necesitarás una lista para pares y otra para impares, ¿no? ¿Vas a hacerlo con un for o utilizarás algún tipo de filtro? ¿Si le pedimos una muestra nos mandarán la buena o la mala?

Sin duda la primera pregunta la tenía clara, y la segunda… también; pero la tercera me dio que pensar y creo que lo resolveré de dos maneras diferentes.

¿Tú cómo lo harías? ¡Deja tus ideas en los comentarios!

Y si quieres compartir código, te recomiendo que utilices alguna herramienta online de testing de código como Codepen, JSFiddle, PlayCode, etc. o repositorios como GitHub, GitLab, BitBucket…

Filed Under: Reto Tagged With: breaking bad, cadenas, javascript, números, reto

Reto: Gestión de pasajeros del expreso de Hogwarts

Publicado el 11/05/2020 por Ada 10 Comments

Harry Potter

Harry Potter

Programación

Procesar un array bidimensional


Acceder al reto en formato vídeo

Todo el mundo sabe que el Expreso de Hogwarts sale del andén 9 y 3/4 de la estación de trenes de King’s Cross, en Londres, y llega a al pueblo de Hogsmeade, donde se encuentra el Colegio Hogwarts de Magia y Hechicería. Sin paradas. Del tirón.

Por lo visto, quieren facilitar a sus estudiantes la movilidad entre el colegio y sus localidades de origen sin necesidad de tener que viajar a Londres, así que está montando una aplicación que controle, entre otras cosas, cómo es ese movimiento de pasajeros.

El mismo Albus Dumbledore se puso en contacto conmigo a través de su fénix, Fawkes, para transmitirme una de las funcionalidades que necesitan en su nuevo programa de gestión de trenes.

Señorita Ada:
Necesitamos controlar el número de pasajeros que llegan al final de un trayecto teniendo en cuenta cuántos suben y bajan en cada parada.
Le facilitaremos una lista del tipo: [s1,b1][s2,b2][s3,b3]… donde en cada par de elementos va el número de pasajeros que se suben (s) y el número de pasajeros que se bajan (b). Así, procesando esa lista, sabremos el número de pasajeros finales que debería llegar a fin de trayecto.
Ejemplo de entrada: [7,0][8,2][9,5][3,1]
Ejemplo de salida: 19 pasajeros
* Nota: En el primer par de números, el segundo siempre será 0 porque en la estación de origen no se baja nadie. No hace falta controlar ese número: se lo facilitaremos siempre de manera correcta.

Y cómo no, Edu con sus preguntas:

¿Vas a utilizar un for para recorrer los arrays? ¿O crees que necesitarás dos? ¿Has oído hablar de las funciones reductoras? ¿Los que no somos magos también podemos ir a Hogwarts? ¿Crees que habrá vagón bar en el tren?

Esta vez tenía mucho más clara la propuesta y cómo resolverla… aunque, sin duda, y como siempre… no había una única manera de hacerlo.

¿Tú cómo lo harías? ¡Deja tus ideas en los comentarios!

Y si quieres compartir código, te recomiendo que utilices alguna herramienta online de testing de código como Codepen, JSFiddle, PlayCode, etc. o repositorios como GitHub, GitLab, BitBucket…

Filed Under: Reto Tagged With: array, harry potter, javascript, reto

Reto: Dustin, Suzie y la constante de Planck

Publicado el 04/05/2020 por Ada 3 Comments

Stranger Things

Stranger Things

Programación

Validar una contraseña con Javascript


Acceder al reto en formato vídeo

Dustin Henderson lo sabe: sabe que su novia Suzie conoce la constante de Planck, el código “secreto” que Joyce Byers y Jim Hopper deben introducir en la caja fuerte para salvar el mundo. Pero está a miles de kilómetros de distancia y solo puede contactar con ella a través de una emisora instalada en lo alto de una montaña.

Y es que en el Indiana de los años 80 esta gente no tenía Internet, ni smartphones, ni Wikipedia donde consultar algo tan básico como la constante de Planck.

La parte de los chicos de Hawkins está solucionada: solo hay que conseguir contactar con Suzie y preguntarle el número en cuestión.

El caso es que a mi me llamaron los rusos para programar la caja fuerte. Alguien tenía que hacerlo, ¿no? Yo tampoco sabía que al final los rusos iban a ser “los malos de la película”. El encargo fue sencillo:

Señorita Ada:
Necesitamos que cree un formulario que compruebe si se ha introducido correctamente la constante de Planck.
* Que, por cierto, es 6.62607015, aunque Suzie menciona una versión anterior 6,62607004.

Y llegó Edu con sus preguntas:

¿Vas a poner un campo de tipo numérico, de texto o de tipo password? ¿y qué vas a valorar, el valor actual de la constante o el que se sabe Suzie? ¿qué ocurre si el valor es correcto? ¿no podías haberte aliado con los norteamericanos?

Dándole una vuelta a todas esas cuestiones y editor en mano me dispuse a realizar mi encargo.

¿Tú cómo lo harías? ¡Deja tus ideas en los comentarios!

Y si quieres compartir código, te recomiendo que utilices alguna herramienta online de testing de código como Codepen, JSFiddle, PlayCode, etc. o repositorios como GitHub, GitLab, BitBucket…

Filed Under: Reto Tagged With: contraseña, javascript, reto, stranger things, validación

  • « Go to Previous Page
  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Go to Next Page »

Footer

Didacticode

Cursos para estudiantes y docentes del mundo de la informática.
Retos: retos resueltos de programación.
Tips&Tricks: trucos y consejos.
Boleticodes: boletines de noticias.
Quiénes somos: Ada, Edu... y Laura.
Contacto¡Contacta conmigo!

Legal

Aviso legal
Política de privacidad
Cookies

Redes Sociales

Youtube
Twitter
Instagram
Facebook
Twitch
LinkedIn
Gitlab
Github

Didacticode © 2026

¡Cómo no! Este sitio también utiliza cookies para mejorar la experiencia de tu visita.

Puedes informarte más sobre qué cookies estamos utilizando o desactivarlas en los .

Resumen de privacidad
Didacticode

Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.

Cookies estrictamente necesarias

Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.