En este post te presento 5 katas de programación de la plataforma Codewars para que pongas a prueba tu nivel. En realidad, es solo para que practiques un poco.
Si no sabés qué es Codewars, te recomiendo el artículo que escribí al respecto: Codewars, ¿sirve para aprender a programar?
Esta selección de ejercicios de programación que te presento, no obedece a ninguna prioridad o tema en especial. Simplemente, me gustaron cuando los hice en su momento.
Ninguno de estos ejercicios es imposible o demasiado difícil de resolver. No hay que inducir ninguna fórmula matemática. En todo caso, hay que investigar un poco cómo funciona lo que se quiere resolver.
Recuerda que los katas en Codewars se clasifican en kyus del 1 al 8, del más difícil al más fácil. Es decir, 1kyu es lo más difícil y 8kyu, lo más fácil.
También recuerda que puedes resolver estos problemas en casi cualquier lenguaje.
Mi explicación de cada kata va a ser escueta. Por lo tanto, no te guíes solo por lo que yo te cuento. Si vas a encarar alguno de estos problemas, te recomiendo que leas la descripción del kata en detalle.
Sin más preámbulos, comencemos con el primer kata.
Contenido
Perímetro de tierra (5 kyu)
Este es un kata que me encanta y yo creo que no es nada difícil. Sin embargo, a veces depende de cómo lo interpretes al primer vistazo.
Te dan un array bidimensional que representan zonas de tierra, como si fuera un mapa. Algunas de estas zonas están marcadas, otras no.
Tu tarea es calcular el perímetro total de las zonas que están marcadas. Es decir, tenés que sumar el perímetro de cada zona, teniendo en cuenta que puede haber zonas adyacentes en horizontal y en vertical.
Enlace: Land perimeter
Calcular el determinante de una matriz (4 kyu)
Este es simple y directo. Hay que calcular el determinante de una matriz de N x N. Es decir, una matriz cuadrada de cualquier tamaño. Puede ser de 2×2, de 3×3 o de cualquier otro tamaño.
Si no sabés álgebra, te recomiendo que investigues cómo se calcula un determinante. Al hacerlo, intentá no spoilearte porque en algunas explicaciones se adjunta algún algoritmo computacional con código.
Leer la explicación para realizar el cálculo es una cosa, pero mirar código ya sería hacer trampa.
Yo creo que el desafío es en parte el algoritmo, pero lo es también su implementación que, dependiendo el lenguaje, puede ser más o menos difícil.
Enlace: Matrix Determinant
Números romanos (6 kyu)
Este kata son dos katas en realidad. La idea es hacer un conversor entre números decimales y romanos. Para ello, hay que codificar un encoder y un decoder.
Primero, es obviamente necesario que conozcas los números romanos. Basta investigar un poco para recordar que letra tiene cuál valor y cómo se ordenan para formar los números.
Luego, es cuestión de pensar un algoritmo para codificar y otro para decodificar.
Enlace: Roman Numerals Encoder y Roman Numerals Decoder
Justificador de texto (4 kyu)
Este es uno de los mejores katas que hice en mucho tiempo.
¿Usaste alguna vez la función de justificar texto? Bueno, eso es lo que tenés que hacer en este kata.
Quizás nunca te pusiste a pensar cómo es que funciona, pero detrás hay un hermoso algoritmo para descubrir.
Para poder resolver este kata podés analizar la funcionalidad de Word o de CSS, contar espacios y ver qué pasa en diferentes casos. Sin embargo, siempre mirá las instrucciones del kata original para que, en caso de resolverlo, no tengas diferencias mínimas con la solución esperada.
Enlace: Text align justify
Comparador de árboles binarios (6 kyu)
La palabra árbol dispara las alarmas de complejidad de las mentes de los programadores. Sin embargo, este kata no es tan difícil como su título puede llegar a indicar.
Hay árboles, sí. Y son binarios, sí. Y la tarea es compararlos.
Hay que pensar un poco y sale. Por algo es solo de 6 kyu.
Enlace: Binary Tree Compare
Provechosos ejercicios para practicar
Si alguno no te sale, no te preocupes. Seguí intentando otro día. Como te contaba antes, a veces depende mucho cómo lo interpretes en la primera leída.
Yo creo que cuando una estrategia no funciona luego de darle muchas vueltas, lo mejor es dejar el ejercicio para el otro día.
¡Ah, y algo importante que me gustaría decirte!
No le dediques horas a estos ejercicios si tenés tareas más importantes que hacer. En el fondo, no son más que práctica para poner un poco en movimiento la mente.
Más contenido sobre programación y modo de vida freelancer en Crónicas Freelancer
Espero que este artículo haya sido de tu interés.
Si estás buscando hosting, te recomiendo Digital Ocean. Seguí este enlace para obtener US$ 200 de crédito para usar en un periodo de 60 días.
Te invito a que me sigas en las redes: LinkedIn, X, GitHub e Instagram. También estoy en Codewars.
Eso es todo. Muchas gracias por tomarte el tiempo de leerme.
Hasta la próxima.
Fuente foto: People illustrations by Storyset