Pregunta de entrevista de Scott Logic

Coding question with follow-up questions about optimising, logical puzzles, design patterns.