Advent of code

Día 2

Validar contraseñas

Advent of code

El Advent of Code es una página web donde cada día del mes de diciembre van descubriendo un problema para que la gente haga un algoritmo que lo resuelva.

2 de diciembre de 2020

El de este día se basa en validar contraseñas, te dan un montón de líneas con contraseñas y la regla de validación para cada una y hay que decir cuantas son válidas.

Ejemplo

En la primera línea pone 1-3 a: abcde

La primera contraseña será válida si hay de 1 a 3 caracteres 'a' en la contraseña dada.

En este caso es válida, la segunda contraseña no (hay menos de 1 'b') y la tercera sí.

Estrategia

  1. Ir leyendo línea a línea (no hace falta almacenarlas)
  2. Trocear la línea (mínimo, máximo, caracter y contraseña)
  3. Comprobar que se cumplen las reglas
  4. Incrementar el contador de válidas cuando proceda

Implementación

Lo he hecho en Java pq es un lenguaje con el que me encuentro cómodo.

Se podía haber hecho en cualquier otro lenguaje (C, Python, Perl, Basic, Pascal, Javascript...), pero me he quedado con éste.

Código - 1

Apertura del fichero

Código - 2

Recorrer el fichero

Código - 3

Trocear línea

Código - 4

Validar contraseña

Optimización

He mirado cuantos milisegundos le cuesta validar las 1.000 contraseñas que me han puesto en el ejercicio y le ha costado 5 milisegundos, por lo que he decidido no optimizarlo más.

Contacto

¿Quieres contactar conmigo?

@xblasco.com (blueSky)

@xblasco (twitter)

Vuelta al índice

índice

Web Analytics