Felt paranoid on this one, was expecting something
much worse for pt2.
The code that solved the puzzle was _extremely_
naive:
- It asumes puzzle input only contains mul() with
1-3 chars. The versioned code have `{1,3}` as safe
guard.
- p2 asumed initial chunk does not begin with
"n't". Would have been easy to handle though.
- p2 asumed junk strings as "don", "do", "don()t"
would not exist.
In other words, I was really lucky since I did not
look that closely on puzzle input beforehand.
Might have cut 60-90 seconds further if I had just
ran pt2 immidately instead of staring dumbly on the
test data (that changed for pt2).
Also, I got reminded that \d in regular expressions
is equal to `0-9`: it does not include commas and
punctations. The code that solved the puzzle was
paranoid and instead used `0-9`.
Managed to score ~1500th somehow despite this.
DDOS of adventofcode.com, did not get to open the
puzzle until 06:05 (five minutes local time).
Screwed up the zip() and lost valuable minutes by
trying to replace it with itertools, only to find
I have made a typo (did AB CD EF instead of AB BC
CD).
I also lost valuable minutes by tring to solve p1
with one nested loop. Stupid.
For part 2, I created the issafe() helper to be
able to remove items from reports and test, one
at the time.
Realized afterwards I got the ints() helper, so
original code before cleanup splitted the input and
mapped all words with int(). valuable seconds lost
there.
Also, collections.Counter() was used initially since
I was too tired to remember count() method in lists.
Line 8 took the longest time to figure out. A typo
took 1-3 minutes to find for part 2.
Form: Sleep deprived, felt slow.