Problema: A small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to a position greater than or equal to Y. The small frog always jumps a fixed distance, D. Count the minimal number of jumps that the small frog must perform to reach its target. Write a function: def solution(X, Y, D) that, given three integers X, Y and D, returns the minimal number of jumps from position X to a position equal to or greater than Y. For example, given: X = 10 Y = 85 D = 30 the function should return 3, because the frog will be positioned as follows: after the[…]

En este problema usaremos uno de los operadores bitwise disponibles en Python (<<, >>, &, |, ~, ^). Que es un operador bitwise? Es simplemente un operador lógico que funciona nivel de bits, bit a bit. Cual vamos a usar? XOR Para darles un ejemplo claro de como funciona XOR, miremos primero su tabla de verdad: ———– A B Output ———– 0 0 0 0 1 1 1 0 1 1 1 0 Es 0 si el par de bits es igual y 1 si el par de bits es diferente. Entonces por ejemplo: 9 ^ 3 ^ 9 = 3 Pasemos los 3 valores a binario: 9 = 1001 3 = 0011 9 = 1001 Primero tomamos 9 y 3[…]

Para este problema en particular no cree un algoritmo, simplemente use collections, que es un modulo que implementa de tipos de datos como dict, list, set y tuple pero de una manera “especializada”, básicamente son mas rápidos y tienen métodos muy útiles, en python 2.7 estan namedtuple, deque, Counter, OrderedDict, defaultdict y en python 3.2 en adelante empezaron agregar mas. Cyclic Rotation Problema: A zero-indexed array A consisting of N integers is given. Rotation of the array means that each element is shifted right by one index, and the last element of the array is also moved to the first place. For example, the rotation of array A = [3, 8, 9, 7, 6] is [6, 3, 8, 9, 7]. The goal[…]

Hace poco leí una publicación ya vieja de coding horror que habla de la incapacidad de la “mayoría” de los programadores para programar, esto basado en que cuando los ponían a hacer un simple Fizz Buzz no podían hacerlo. Inmediatamente lo intente y no tarde mucho tiempo resolviéndolo pero me quedo la duda de si realmente podía resolver cosas mas complejas que un Fizz Buzz. Hace tiempo escuche sobre codility y lo tenia en favoritos pero nunca lo probé, y hace unas semanas en facebook me recomendaron que si quería entrar en toptal le diera una revisada a codility que es una plataforma online para “testear” las habilidades de los programadores y es usado por un gran numero de empresas de software, de hecho si[…]