Pergunta de entrevista da empresa Scott Logic

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