Ir al contenido principal

Retos de programación

Binary Code

Para entrenar mi lógica de programación me he unido a la iniciativa propuesta por MoureDev. Aquí recopilo mis soluciones de los retos basados en pruebas técnicas y entrevistas de trabajo.

Índice:

Reto #0: El famoso "Fizz Buzz" - Fácil

Escribe un programa que muestre por consola (con un print) los números de 1 a 100 (ambos incluidos y con un salto de línea entre cada impresión), sustituyendo los siguientes:

  • Múltiplos de 3 por la palabra "fizz".
  • Múltiplos de 5 por la palabra "buzz".
  • Múltiplos de 3 y de 5 a la vez por la palabra "fizzbuzz".
Mi solución en:  Kotlin

Reto #1: El "lenguaje hacker" - Fácil

Escribe un programa que reciba un texto y transforme lenguaje natural a "lenguaje hacker" (conocido realmente como "leet" o "1337"). Este lenguaje se caracteriza por sustituir caracteres alfanuméricos.

  • Utiliza esta tabla con el alfabeto y los números en "leet".
  • Usa la primera opción de cada transformación. Por ejemplo "4" para la "a"
Mi solución en: Kotlin

Reto #2: El partido de tenis - Media

Escribe un programa que muestre cómo transcurre un juego de tenis y quién lo ha ganado. El programa recibirá una secuencia formada por "P1" (Player 1) o "P2" (Player 2), según quien gane cada punto del juego.

  • Las puntuaciones de un juego son "Love" (cero), 15, 30, 40, "Deuce" (empate), ventaja.
  • Ante la secuencia [P1, P1, P2, P2, P1, P2, P1, P1], el programa mostraría lo siguiente:
    15 - Love
    30 - Love
    30 - 15
    30 - 30
    40 - 30
    Deuce
    Ventaja P1
    Ha ganado el P1
  • Si quieres, puedes controlar errores en la entrada de datos.   
  • Consulta las reglas del juego si tienes dudas sobre el sistema de puntos.
Mi solución en: Kotlin

Reto #3: El generador de contraseñas - Media

Escribe un programa que sea capaz de generar contraseñas de forma aleatoria. Podrás configurar generar contraseñas con los siguientes parámetros:

  • Longitud: Entre 8 y 16.
  • Con o sin letras mayúsculas.
  • Con o sin números.
  • Con o sin símbolos.
  • Pudiendo combinar todos estos parámetros entre ellos
Mi solución en: Kotlin

Reto #4: Primo, Fibonacci y par - Media

Escribe un programa que, dado un número, compruebe y muestre si es primo, fibonacci y par.
Ejemplos:

  • Con el número 2, nos dirá: "2 es primo, fibonacci y es par"
  • Con el número 7, nos dirá: "7 es primo, no es fibonacci y es impar"
Mi solución en: Kotlin

Reto #5: ¡Hola Mundo! - Fácil

Escribe un !Hola Mundo! en todos los lenguajes de programación que puedas. Seguro que hay algúnlenguaje que te llama la atención y nunca has utilizado, o quizás quieres dar tus primeros pasos... ¡Pues este es el momento! 

Mi solución en: Python

Reto #6: Piedra, papel, tijera, lagarto, Spock - Media

Crea un programa que calcule quien gana más partidas al piedra, papel, tijera, lagarto, spock.

  • El resultado puede ser: "Player 1", "Player 2", "Tie" (empate)
  • La función recibe un listado que contiene pares, representando cada jugada.
  • El par puede contener combinaciones de "🗿" (piedra), "📄" (papel), "✂️" (tijera), "🦎" (lagarto) o "🖖" (spock).
  • Ejemplo. Entrada: [("🗿","✂️"), ("✂️","🗿"), ("📄","✂️")]. Resultado: "Player 2".
  • Debes buscar información sobre cómo se juega con estas 5 posibilidades.
Mi solución en: Kotlin

Reto #7: El sombrero seleccionador - Media

Crea un programa que simule el comportamiento del sombrero selccionador del universo mágico de Harry Potter.

  • De ser posible realizará 5 preguntas (como mínimo) a través de la terminal.
  • Cada pregunta tendrá 4 respuestas posibles (también a selecciona una a través de terminal).
  • En función de las respuestas a las 5 preguntas deberás diseñar un algoritmo que coloque al alumno en una de las 4 casas de Hogwarts: Gryffindor, Slytherin , Hufflepuff y Ravenclaw
  • Ten en cuenta los rasgos de cada casa para hacer las preguntas y crear el algoritmo seleccionador: Por ejemplo, en Slytherin se premia la ambición y la astucia.
Mi solución en: Kotlin 

Reto #8: El generador pseudoaleatorio - Media

Crea un generador de números pseudoaleatorios entre 0 y 100.

  • No puedes usar ninguna función "random" (o semejante) del lenguaje de programación seleccionado.

Mi solución en: Kotlin 

Reto #9: Heterograma, isograma y pangrama - Fácil

Crea 3 funciones, cada una encargada de detectar si una cadena de texto es un heterograma, un isograma o un pangrama. 

  • Debes buscar la definición de cada uno de estos términos.
 Mi solución en: Kotlin

Reto #10: LA API - Media

Llamar a una API es una de las tareas más comunes en programación. Implementa una llamada HTTP a una API (la que tú quieras) y muestra su resultado a través de la terminal. Por ejemplo: Pokémon, Marvel...

Aquí tienes un listado de posibles APIs

Mi solución en: Java

Reto #11: URL params - Fácil

Dada una URL con parámetros, crea una función que obtenga sus valores. No se pueden usar operaciones del lenguaje que realicen esta tarea directamente.

Ejemplo: En la url https://retosdeprogramacion.com?year=2023&challenge=0 los parámetros serían ["2023", "0"]

Mi solución en: Java

Reto #12: Viernes 13 - Fácil

Crea una función que sea capaz de detectar si existe un viernes 13 en el mes y el año indicados.

  • La función recibirá el mes y el año y retornará verdadero o falso.
Mi solución en: Java