###### tags `python-kata` # Python, kata e almorzo / Python, kata y desayuno - 6ª Edición Hola! Breves instrucciones a continuación para que todo vaya fluido! 1. Nos juntaremos en grupos de 2-3 personas 1. Elegiremos conjuntamente y al "azar" un ejercicio de https://leetcode.com/ o https://www.hackerrank.com/ 1. Resolveremos el problema en iteraciones de 10 minutos. 1. Al final cada iteración decideremos entre todos los grupos si damos finalizado el problema o continuamos iterando para refactorizar u optimizar. 1. Finalizado el problema, copiaremos la solución en este documento en el espacio reservado para cada grupo. 1. Revisaremos y comentaremos soluciones de cada grupo. 1. Revisaremos soluciones de otros usuarios en Leetcode o Hackerank en Python, y en otros lenguajes. 1. Si queda tiempo volvemos al _Paso 2_. Además.. 1. No es necesario que todo el mundo traiga portatil (1 de cada 2 o 3 es suficiente) ni es necesario instalar nada. 1. Se puede acompañar de café, te, galletas, desayuno inglés...(recuerda teclear sin chocolate en los dedos) 2. No importa el nivel o la experiencia individual, lo importante es aprender todos de todos. 3. La reunión es informal y el objetivo es aprender pasando un buen rato! Anteriores ediciones: - [https://github.com/aindustriosa/python-kata-e-almorzo](https://github.com/aindustriosa/python-kata-e-almorzo) ## Ejercicios: * https://leetcode.com/problems/climbing-stairs/ ### Grupo 1 - Componentes: Dani Alex _Código:_ ```python import itertools class Solution: def climbStairs(self, n: int) -> int: unos = n doses = 0 resultado = 0 while True: elementos = "1" * unos + "2" * doses resultado += len(set(itertools.permutations(elementos))) if unos >=2: unos -= 2 doses += 1 else: return resultado ``` ### Grupo 2 - Componentes: Alberto et Xurxo _Código:_ ```python class Solution: def recursive (self, left): # print(left) if left==[]: self.contador+=1 return for i in [1,2]: if i<=len(left): self.recursive(left[i:]) def climbStairs(self, n: int) -> int: self.contador =0 self.recursive([1 for _ in range(n)]) return self.recursive solucion: 1 -> 1 2 -> 2 3 -> 3 4 -> 5 5 -> 8 6 -> 13 7 -> 21 asi que f(n) -> f(n-1) + f(n-2) f(1) -> 1 f(2) -> 2 ``` ### Grupo 3 - Componentes: Javi Franco Jhon Mireia _Código:_ ```python N = 6 _min=int(math.floor(N / 2.0) + 1) print("min", _min) res=0 for x in range(0, _min, 1): print(x, res) res = res + (N - x) print(res) # n - 0 + (n - 1) + (n - 2) ```