Commit Graph

  • 97d51cb00c day25 the solution is easier to calculate once you have the loop count master Stefan Harmuth 2020-12-25 07:45:40 +0100
  • d630a568b7 day25 bruteforce, but calculating one loop is enough Stefan Harmuth 2020-12-25 07:39:08 +0100
  • a9452f5231 day25 bruteforce Stefan Harmuth 2020-12-25 07:29:41 +0100
  • 7b6c3bfa2a Merge remote-tracking branch 'origin/master' Stefan Harmuth 2020-12-24 07:05:31 +0100
  • 92841964b2 day24 Stefan Harmuth 2020-12-24 07:05:26 +0100
  • 153f4f79b6 TIL: python has 1000 delimiters Stefan Harmuth 2020-12-23 13:51:59 +0100
  • 3a396c8c47 day23: correct naming Stefan Harmuth 2020-12-23 12:54:10 +0100
  • d82dcaa421 day23: don't need left Stefan Harmuth 2020-12-23 11:41:36 +0100
  • 5f0fb357bd day23: a bit of cleanup Stefan Harmuth 2020-12-23 07:56:09 +0100
  • 3dca21452a Merge remote-tracking branch 'origin/master' Stefan Harmuth 2020-12-23 07:21:06 +0100
  • fb3a3918cd day23 Stefan Harmuth 2020-12-23 07:21:00 +0100
  • 4283467970 day13: after no longer understanding, what I did there, rewrote p2 with added comments to make it understandable in the future (same solution, just with some added dict-spice instead of lists) Stefan Harmuth 2020-12-22 13:15:43 +0100
  • 7f8895c2c1 day22 Stefan Harmuth 2020-12-22 08:38:38 +0100
  • 6291148c24 day21 Stefan Harmuth 2020-12-21 06:57:49 +0100
  • da5fab3c8c day20: limit transformations to the absolute necessary Stefan Harmuth 2020-12-20 21:38:49 +0100
  • 91f4d095f1 day20: limit transformations to the absolute necessary Stefan Harmuth 2020-12-20 21:34:52 +0100
  • 4c9e7f2838 day20: comment to clarify the == 4 Stefan Harmuth 2020-12-20 20:23:26 +0100
  • 961fc2a8cb day20: don't re-build possible border lists every loop Stefan Harmuth 2020-12-20 20:19:32 +0100
  • db841e474f day20: in p2 restrict p1 to only what we need Stefan Harmuth 2020-12-20 10:25:23 +0100
  • 0098cac688 day20: at least remove your debug output Stefan Harmuth 2020-12-20 10:21:43 +0100
  • 10ffd11c46 day20: raw (ugly) version Stefan Harmuth 2020-12-20 10:18:12 +0100
  • 5accf0f63b day19: lean on the solution for p2 and split the checks in two (much!) smaller lists -> from 1.1s down to 8ms Stefan Harmuth 2020-12-19 09:44:25 +0100
  • 80a918cd69 day19: converting to a set() first makes the lookups faster Stefan Harmuth 2020-12-19 09:35:41 +0100
  • 0a1fcb9ed9 day19: raw version Stefan Harmuth 2020-12-19 09:02:46 +0100
  • 5d82af1ebe day18: raw version Stefan Harmuth 2020-12-18 07:20:31 +0100
  • d162555dfa day17: missed one var substitution Stefan Harmuth 2020-12-17 08:47:54 +0100
  • faaa50240d day17: just count active neighbours when there is actually an active neighbour Stefan Harmuth 2020-12-17 07:34:46 +0100
  • e62fe76949 day17: raw version Stefan Harmuth 2020-12-17 06:27:36 +0100
  • 66ad0f3f70 day16: faster and more readable Stefan Harmuth 2020-12-16 08:03:59 +0100
  • 2d6dd0e074 day16: cleaner code Stefan Harmuth 2020-12-16 07:46:55 +0100
  • 07d49a707b day16 - raw version Stefan Harmuth 2020-12-16 06:51:06 +0100
  • 5bda75e144 day15 - shorter, faster, still too slow Stefan Harmuth 2020-12-15 06:46:48 +0100
  • 017e04a27c day15 - raw solution Stefan Harmuth 2020-12-15 06:29:38 +0100
  • 7fa39e155d day14 - raw solution Stefan Harmuth 2020-12-14 07:33:18 +0100
  • 3166129ed6 day13: remove unused import Stefan Harmuth 2020-12-13 11:21:53 +0100
  • 3cb30170e2 day13: TIL: Chinese Remainder Theorem Stefan Harmuth 2020-12-13 11:21:06 +0100
  • b3c49e5353 day12: it's a little bit slower, but I like the cleaner code Stefan Harmuth 2020-12-12 11:20:30 +0100
  • 38032fbb6e day12: no need to re-evaluate where in p2 Stefan Harmuth 2020-12-12 06:53:18 +0100
  • 20e35877e2 day12: use acceptable variable names Stefan Harmuth 2020-12-12 06:47:05 +0100
  • 3c1a4269f8 Merge remote-tracking branch 'origin/master' Stefan Harmuth 2020-12-12 06:34:54 +0100
  • 1f61c4b97d day12 Stefan Harmuth 2020-12-12 06:34:48 +0100
  • 033a31a7c0 day11: remove another 2 dict-accesses Stefan Harmuth 2020-12-11 13:52:48 +0100
  • 6df1f468d3 day11: ever so slightly faster - still 2s +/- 0.2 Stefan Harmuth 2020-12-11 12:35:36 +0100
  • c3cced9c4d day11: down to ~2s (and found the flaw in p2) Stefan Harmuth 2020-12-11 11:58:35 +0100
  • 4dc83760b7 day11: slightly faster (and actually correct) Stefan Harmuth 2020-12-11 11:00:59 +0100
  • ef7fb6e53e day 11 - slow Stefan Harmuth 2020-12-11 08:08:42 +0100
  • cd78620ec3 finally it clicked for d9p2 Stefan Harmuth 2020-12-10 15:28:17 +0100
  • 490978ff9b day 10 Stefan Harmuth 2020-12-10 07:47:12 +0100
  • e666a78ba1 day9 optimizations Stefan Harmuth 2020-12-10 05:49:09 +0100
  • 9bd530c097 remove ununsed import Stefan Harmuth 2020-12-09 06:43:01 +0100
  • 0bfa735129 day 9: optimizations and beautifications Stefan Harmuth 2020-12-09 06:42:08 +0100
  • 31eeead0f7 day 9 p1 simplified Stefan Harmuth 2020-12-09 06:30:27 +0100
  • 9391bc2b12 Merge remote-tracking branch 'origin/master' Stefan Harmuth 2020-12-09 06:21:55 +0100
  • 76d238fc7b day 9 Stefan Harmuth 2020-12-09 06:21:48 +0100
  • a8a0873eec pre-optimizing the opcode makes p1 take twice the time, but p2 almost twice as fast Stefan Harmuth 2020-12-08 10:51:26 +0100
  • 8277dfe0f9 we only need to check the instructions up to the infinite loop - everything else cannot contain the error Stefan Harmuth 2020-12-08 09:43:28 +0100
  • 761e3bf975 only check for 'nop' if the check for 'jmp' failes. Saves 0.5ms :) Stefan Harmuth 2020-12-08 09:12:24 +0100
  • b4ff7c58d0 TIL: enumerate() exists; no more manual counting Stefan Harmuth 2020-12-08 09:09:50 +0100
  • aa5ae674ec only int-cast param when needed Stefan Harmuth 2020-12-08 09:04:38 +0100
  • 9b0b8eb1f6 makes parsing minimally faster (and also more readable) Stefan Harmuth 2020-12-08 08:55:18 +0100
  • 29b0604952 [:] does the same and is minimally faster than .copy() Stefan Harmuth 2020-12-08 06:36:24 +0100
  • f9a0472f85 this is not an f-string anymore Stefan Harmuth 2020-12-08 06:24:27 +0100
  • aa07b45ba7 day 8 Stefan Harmuth 2020-12-08 06:23:43 +0100
  • bc64ff468d use python's own timeit module instead of our own halfbaked implementation Stefan Harmuth 2020-12-07 11:00:58 +0100
  • 8eecddaf60 note to myself: set()s are much faster than list()s and auto-eliminate duplicates Stefan Harmuth 2020-12-07 10:35:09 +0100
  • aa29aaedd4 day 7 Stefan Harmuth 2020-12-07 06:54:43 +0100
  • a1e946494b get rid of numpy makes it >10x faster Stefan Harmuth 2020-12-06 08:44:55 +0100
  • 6aa821c6f4 day 6 + central testing Stefan Harmuth 2020-12-06 08:16:26 +0100
  • d4380883b2 add execution time measuring Stefan Harmuth 2020-12-05 12:16:30 +0100
  • 3e8103fd39 day 5 Stefan Harmuth 2020-12-05 06:36:47 +0100
  • 5389f899d5 no need to check further if a match has been found Stefan Harmuth 2020-12-04 08:52:33 +0100
  • a70f2daf7f day 4 Stefan Harmuth 2020-12-04 07:06:51 +0100
  • a3d2b5140f better (and faster) solution Stefan Harmuth 2020-12-03 11:00:59 +0100
  • fcd394aaba more input process options Stefan Harmuth 2020-12-03 09:57:10 +0100
  • 95e56b9333 day3 Stefan Harmuth 2020-12-03 07:05:29 +0100
  • f70c759582 build in asserts when running single day scripts Stefan Harmuth 2020-12-02 10:57:53 +0100
  • d49d0bb8fe getting rid of exec() and ugly "TEST in globals()" Stefan Harmuth 2020-12-02 10:26:00 +0100
  • 5f1e68270b day2 Stefan Harmuth 2020-12-02 09:17:39 +0100
  • 6348ae58a3 add test option Stefan Harmuth 2020-12-01 11:27:01 +0100
  • a0408e9873 stop pycharm from complaining :) Stefan Harmuth 2020-12-01 08:41:32 +0100
  • b5d4852d82 main.py running all days Stefan Harmuth 2020-12-01 08:40:31 +0100
  • 10a569faed day1 Stefan Harmuth 2020-12-01 08:19:38 +0100