An attempt at solving 100 programming challenges