Skip to content

Latest commit

 

History

History
113 lines (86 loc) · 2.65 KB

Python, kata e almorzo _ Python, kata y desayuno - 6ª Edición.md

File metadata and controls

113 lines (86 loc) · 2.65 KB

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
  2. Elegiremos conjuntamente y al "azar" un ejercicio de https://leetcode.com/ o https://www.hackerrank.com/
  3. Resolveremos el problema en iteraciones de 10 minutos.
  4. Al final cada iteración decideremos entre todos los grupos si damos finalizado el problema o continuamos iterando para refactorizar u optimizar.
  5. Finalizado el problema, copiaremos la solución en este documento en el espacio reservado para cada grupo.
  6. Revisaremos y comentaremos soluciones de cada grupo.
  7. Revisaremos soluciones de otros usuarios en Leetcode o Hackerank en Python, y en otros lenguajes.
  8. 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.
  2. Se puede acompañar de café, te, galletas, desayuno inglés...(recuerda teclear sin chocolate en los dedos)
  3. No importa el nivel o la experiencia individual, lo importante es aprender todos de todos.
  4. La reunión es informal y el objetivo es aprender pasando un buen rato!

Anteriores ediciones:

Ejercicios:

Grupo 1 - Componentes:

Dani Alex

Código:

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:

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:

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)