├── 2015 ├── 1 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 3 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── santa-and-robo-santa.js │ └── santa.js ├── 4 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 5 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── naughty-string.js │ ├── part-one.js │ └── part-two.js ├── 6 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 7 │ ├── README.md │ ├── circuit.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 8 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── sample-input.js │ ├── sample-input.txt │ ├── sample-part-one.js │ └── sample-part-two.js ├── 9 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 10 │ ├── README.md │ ├── input.js │ ├── look-and-say.js │ ├── part-one.js │ └── part-two.js ├── 11 │ ├── README.md │ ├── base26-letters.js │ ├── input.js │ ├── part-one.js │ ├── part-two.js │ └── password-rules.js ├── 12 │ ├── README.md │ ├── formatted-input.js │ ├── input.js │ ├── input.txt │ ├── no-deps.js │ ├── part-one.js │ └── part-two.js ├── 13 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 14 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── race.js ├── 15 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 16 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 17 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 18 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── sample-input.js │ └── sample-run.js ├── 19 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 20 │ ├── README.md │ ├── input.js │ ├── part-one.js │ └── part-two.js ├── 21 │ ├── README.md │ ├── hero-set.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── rpg.js ├── 22 │ ├── README.md │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 23 │ ├── README.md │ ├── cpu.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 24 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js └── 25 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── input.txt │ └── part-one.js ├── 2016 ├── 1 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── keypad.js │ ├── part-one.js │ └── part-two.js ├── 3 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 4 │ ├── README.md │ ├── decrypt-rooms.js │ ├── input.js │ ├── input.txt │ ├── is-room-valid.js │ ├── part-one.js │ └── part-two.js ├── 5 │ ├── README.md │ ├── input.js │ ├── md5.js │ ├── part-one.js │ └── part-two.js ├── 6 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── message.js │ ├── part-one.js │ └── part-two.js ├── 7 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── supports-protocols.js ├── 8 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── screen.js ├── 9 │ ├── README.md │ ├── decompress-alg-2.js │ ├── decompress.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 10 │ ├── README.md │ ├── bot-comparisons.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 11 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── notes.txt │ ├── part-one.js │ ├── part-two.js │ ├── rtg-path.js │ ├── sheet-incorrect-path.xlsx │ └── short-path-test.js ├── 12 │ ├── README.md │ ├── device.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 13 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── maze.js │ ├── part-one.js │ └── part-two.js ├── 14 │ ├── README.md │ ├── input.js │ ├── key-generator.js │ ├── part-one.js │ └── part-two.js ├── 15 │ ├── README.md │ ├── disks.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 16 │ ├── README.md │ ├── disk.js │ ├── input.js │ ├── part-one.js │ └── part-two.js ├── 17 │ ├── README.md │ ├── input.js │ ├── part-one.js │ ├── part-two.js │ └── room.js ├── 18 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 19 │ ├── README.md │ ├── generate-data.js │ ├── input.js │ ├── part-one.js │ ├── part-two-data.csv │ └── part-two.js ├── 20 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── ranges.js ├── 21 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── scramble.js ├── 22 │ ├── README.md │ ├── generate-grid.js │ ├── grid.txt │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 23 │ ├── README.md │ ├── device.js │ ├── input.js │ ├── input.txt │ └── part-one.js ├── 24 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js └── 25 │ ├── README.md │ ├── device.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2017 ├── 1 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 3 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── part-one.js │ └── part-two.js ├── 4 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 5 │ ├── README.md │ ├── cpu.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 6 │ ├── README.md │ ├── chip.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 7 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── tree.js ├── 8 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── program.js ├── 9 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── stream.js ├── 10 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── knot.js │ ├── part-one.js │ └── part-two.js ├── 11 │ ├── README.md │ ├── hex-grid-red-blob.js │ ├── input.js │ ├── part-one.js │ └── part-two.js ├── 12 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── piped-streams.js ├── 13 │ ├── README.md │ ├── firewall.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 14 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── knot.js │ ├── part-one.js │ └── part-two.js ├── 15 │ ├── README.md │ ├── generator.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 16 │ ├── README.md │ ├── dance.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 17 │ ├── README.md │ ├── circular-list.js │ ├── input.js │ ├── part-one.js │ ├── part-two-fast.js │ └── part-two.js ├── 18 │ ├── README.md │ ├── duet.js │ ├── input.js │ ├── input.txt │ ├── parallel.js │ ├── part-one.js │ └── part-two.js ├── 19 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── track.js ├── 20 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── point-cloud.js ├── 21 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 22 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 23 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── program.js │ └── spa │ │ ├── package.json │ │ ├── public │ │ └── index.html │ │ ├── rollup.config.js │ │ ├── src │ │ ├── .babelrc.json │ │ ├── index.js │ │ └── lib │ │ │ ├── BreakOn.js │ │ │ ├── Controls.js │ │ │ ├── Device.js │ │ │ ├── InstructionCount.js │ │ │ ├── Program.js │ │ │ ├── Registers.js │ │ │ ├── data.js │ │ │ └── styles.css │ │ └── yarn.lock ├── 24 │ ├── README.md │ ├── bridge.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js └── 25 │ ├── README.md │ ├── input.txt │ ├── part-one.js │ └── turing-lang │ ├── .jshintrc │ ├── .npmignore │ ├── .travis.yml │ ├── Gruntfile.js │ ├── README.md │ ├── lib │ ├── machine │ │ ├── index.js │ │ ├── index.js.map │ │ ├── tape.js │ │ ├── tape.js.map │ │ ├── transition-function.js │ │ └── transition-function.js.map │ ├── parser │ │ ├── index.js │ │ ├── index.js.map │ │ ├── state-table.js │ │ └── state-table.js.map │ ├── turing-lang.js │ └── turing-lang.js.map │ ├── package.json │ └── test │ ├── machine │ ├── index.js │ ├── tape.js │ └── transition-function.js │ ├── parser │ └── index.js │ └── test.js ├── 2018 ├── 1 │ ├── README.md │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2 │ ├── README.md │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 3 │ ├── README.md │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 4 │ ├── README.md │ ├── input.txt │ ├── modules │ │ ├── company.js │ │ ├── guard.js │ │ └── log-entry.js │ ├── part-one.js │ └── part-two.js ├── 5 │ ├── README.md │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 6 │ ├── README.md │ ├── input.txt │ ├── part-one.js │ ├── part-one.png │ └── part-two.js ├── 7 │ ├── README.md │ ├── input.txt │ ├── mermaid-config1.txt │ ├── part-one.js │ ├── part-two.js │ ├── sample-input.txt │ ├── tree.js │ └── vis-js-config.txt ├── 8 │ ├── README.md │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── sample-input.txt │ └── tree.js ├── 9 │ ├── README.md │ ├── game.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 10 │ ├── README.md │ ├── grid.js │ ├── index.html │ ├── input.txt │ └── sample-input.txt ├── 11 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── part-one.js │ ├── part-two-runner.js │ └── part-two.js ├── 12 │ ├── README.md │ ├── garden-static.js │ ├── garden.js │ ├── input.js │ ├── part-one.js │ ├── part-two.js │ ├── random-visualizer.js │ └── visualizations │ │ ├── 08c199df2ce7dfc50157f2b954d08b1b-visualized.png │ │ ├── 0987fb17ed33efe7368bcd599b508448-visualized.png │ │ ├── 0b1d4c90b70d0717dfd97e14b1f1acb3-visualized.png │ │ ├── 0e4e79268f3848809ef84ebeefa115b6-visualized.png │ │ ├── 0e88a0a3c0ba18a2f108888d306ed4c8-visualized.png │ │ ├── 0f41fba4d9400cf369a75bcc20dec182-visualized.png │ │ ├── 0f5bf0340c8a6536619e3637f98dd785-visualized.png │ │ ├── 1031a121ffdc592039f506de68d83227-visualized.png │ │ ├── 1200d80839e0163ee877d0ecdb5f59a9-visualized.png │ │ ├── 1247f96d0ea75f1819f67aef9ccee81a-visualized.png │ │ ├── 159265f053465e10f26deebedc032842-visualized.png │ │ ├── 1619c4bf63685bbdae0ddc2a6c3eb806-visualized.png │ │ ├── 188ea14089ab0c067969778405ffa0a5-visualized.png │ │ ├── 1acd98771b4610348e4f7a86baeaeb07-visualized.png │ │ ├── 1cb3fc75346a0b3e335b7763f3aefee7-visualized.png │ │ ├── 1e6b1dfcc76bb0aeb861438e5a65b1b3-visualized.png │ │ ├── 1f37f4a34698dfae037df9f7e31fe672-visualized.png │ │ ├── 22c24449bbca4dfd3e87ddd9dff84bae-visualized.png │ │ ├── 26a06aae89eea387448f0fea8dc8f10b-visualized.png │ │ ├── 26f37d5e02178f61b9f407720a52437c-visualized.png │ │ ├── 296230f490c5776869f1eb78f4730d25-visualized.png │ │ ├── 298b2154937611bf1d450760c132b5cc-visualized.png │ │ ├── 298fbf7356f1231208d06f4f2ad8798d-visualized.png │ │ ├── 2b71cbb6db4e8aad0383e6d0be926257-visualized.png │ │ ├── 2baf81912600c6d1826ff936caeb8285-visualized.png │ │ ├── 300f5bd07082222ac363f46fd9013f0f-visualized.png │ │ ├── 3182e1c51629388a05ed729f0ee09a13-visualized.png │ │ ├── 3241f889220d07a2b00281d62dc49ba0-visualized.png │ │ ├── 32459c3ac26b88f2288d99b772ac7501-visualized.png │ │ ├── 33d7ff5b39cac38ebda51273490991c6-visualized.png │ │ ├── 342738657306f13a799f60178d51efab-visualized.png │ │ ├── 3904f949686c67a747130f97ab02c439-visualized.png │ │ ├── 39621f5efdbc3ab241dc77658e211e89-visualized.png │ │ ├── 3a48e16b262b3ca5c46c74592d8194eb-visualized.png │ │ ├── 428410aad1adafd3de4ab5ef1f51d197-visualized.png │ │ ├── 48f1d26c9a440d410a919d2b4d211a56-visualized.png │ │ ├── 4d826a23090dcb351fe16bde1ed303ef-visualized.png │ │ ├── 4e2aa0b663a0905165642640ba7c7b40-visualized.png │ │ ├── 4fe121248982bf13ddea4c3aa2f3c8e4-visualized.png │ │ ├── 51e2c92cd2d2c1846a75966a8b5f8fa7-visualized.png │ │ ├── 5527f71ff5b590db200a37fdec1f07e9-visualized.png │ │ ├── 5827a1eb0000e6704981c2772674e8c6-visualized.png │ │ ├── 59d8be44e569a60196f1d057d9f8d537-visualized.png │ │ ├── 5cd203ccd7fd810df1e47f2632cfb8b3-visualized.png │ │ ├── 61ef5e2c04676960b580911ee0789f0f-visualized.png │ │ ├── 6221c880c4301b98861a5773adc0a5c5-visualized.png │ │ ├── 638f94da7d94af6c925cdd6770c2fbcb-visualized.png │ │ ├── 66ab2a9f044eb7b9e93ec32b389cf432-visualized.png │ │ ├── 67ccec6cdae9020e14666374cdfa428c-visualized.png │ │ ├── 68b35f750ef8ef6cfef8e6870d78335f-visualized.png │ │ ├── 6a9499b5db6a5544d4a3bd5abe5bab8c-visualized.png │ │ ├── 6c98bc90379275ae34c40e6554fde66f-visualized.png │ │ ├── 71b9bda642084ca166eb9e027a0f2567-visualized.png │ │ ├── 71d3441c3d7db2b5d3f6aef1769ae066-visualized.png │ │ ├── 756ec22bf0e3f30808ece37cf204f35f-visualized.png │ │ ├── 757bdd64864eef12ec8d17e44a20d3af-visualized.png │ │ ├── 7ca7fc76ef5e434e4131fd40f446264d-visualized.png │ │ ├── 7e5b04f790c99757e8e3d7e3cec1dafe-visualized.png │ │ ├── 82a066394aa1644facad250e7ebbb33e-visualized.png │ │ ├── 85cf22aaca8385c39d97faf91609e944-visualized.png │ │ ├── 87380e6681281335f6a00a5b91686faa-visualized.png │ │ ├── 8eaf9ee7afd4420f153c29f3a3c1b2b5-visualized.png │ │ ├── 95ce0e66d87eec23272887bbf09c6352-visualized.png │ │ ├── 95edd6eb65a12964e077444eb4e3a3de-visualized.png │ │ ├── 960fda478d2e72386b13e2e4d718b81c-visualized.png │ │ ├── 9b5f7398c7fff3daff9d10447bce2dc8-visualized.png │ │ ├── 9cd43c7d6c1c9c775343d63a055897a3-visualized.png │ │ ├── a709be5cb63bc90aa6c3f7a73092b2e3-visualized.png │ │ ├── a848b3fa8eff279d325502561e8c54a0-visualized.png │ │ ├── a968bfb65e9cd4c1ae9a5a4415b60506-visualized.png │ │ ├── aadd820150b2e57c9e86fa24f16e8024-visualized.png │ │ ├── b43b8e8744cfdf9e565c0965a732601a-visualized.png │ │ ├── b538e5202c8147f8ceb4ae4bbe520b83-visualized.png │ │ ├── b5f19f60981791418791852867220962-visualized.png │ │ ├── b9b4d59dd5fe02110b2b9d71fe452a11-visualized.png │ │ ├── bec04f9fa24797601cd715f36cea25b5-visualized.png │ │ ├── bf8bef7c2efbdffecd64dde02524fabc-visualized.png │ │ ├── bfd2b0fd8b03b6ce899d9933f754fd4e-visualized.png │ │ ├── c12387b29b5c6c775a2a5740182b2a97-visualized.png │ │ ├── c1abac76dddbcd559c39a34917ea6ac0-visualized.png │ │ ├── c40582ed24151a2cedc5d02211acd660-visualized.png │ │ ├── c74692d736ad2906144579554e9f8a4f-visualized.png │ │ ├── c78e89a2018480fa83dbb6c976dda764-visualized.png │ │ ├── cef35433ba617c7315f1cba878f39b51-visualized.png │ │ ├── d1658773edd50dd029f534b71538b115-visualized.png │ │ ├── d2f910d60bcd407b55db38824a31cf72-visualized.png │ │ ├── d3dd85c2f196c264c3a0ef2392ded9c2-visualized.png │ │ ├── d92462ff6acc7f56c2af9ea23020720d-visualized.png │ │ ├── d93d2dd9c23817883ea75591ce44aa0d-visualized.png │ │ ├── dd8e235a21be99f64d16f560172254ee-visualized.png │ │ ├── dffdf4d729371ab6786e2e61e02d73e3-visualized.png │ │ ├── e070d66397370b94d32fed1166c5ce1f-visualized.png │ │ ├── e249e4ece14d5d044d835e22ccbc0d8d-visualized.png │ │ ├── e2e770c248a9e0f279db20247101569c-visualized.png │ │ ├── e2f0f7f185aacf05b0cc1aad4ae72f62-visualized.png │ │ ├── e82c02ee4b2ec5d4aea190ba6575ce18-visualized.png │ │ ├── e866ecd8fda68718cdc6617cbed3c9f1-visualized.png │ │ ├── e976e63d5b9a824623337557f258555c-visualized.png │ │ ├── eb13879aaf5054aca01210018c5eb237-visualized.png │ │ ├── ebc108fdd968235a44a5c9257ff3446d-visualized.png │ │ ├── ed62d6617c68231297c428b3b2025cc2-visualized.png │ │ ├── f234952959deb0709759afa78e64c7fe-visualized.png │ │ ├── f414b676e635647e4aec93f8df1b1ec8-visualized.png │ │ ├── f52bc8e4b963243dcd2703510f47c4a9-visualized.png │ │ ├── f5489062b2b7d23e5ee7d5b706e6f4a5-visualized.png │ │ ├── f79be0e8a3740241f2aa45392201c722-visualized.png │ │ ├── f94f7ffba968760fed26effa2da8f386-visualized.png │ │ ├── fa2aec63a327d0937d0921e59283ae62-visualized.png │ │ ├── fbd1c81ec24142f76a00f3c01c1cbef9-visualized.png │ │ └── inputs │ │ ├── 08c199df2ce7dfc50157f2b954d08b1b-input.txt │ │ ├── 0987fb17ed33efe7368bcd599b508448-input.txt │ │ ├── 0b1d4c90b70d0717dfd97e14b1f1acb3-input.txt │ │ ├── 0e4e79268f3848809ef84ebeefa115b6-input.txt │ │ ├── 0e88a0a3c0ba18a2f108888d306ed4c8-input.txt │ │ ├── 0f41fba4d9400cf369a75bcc20dec182-input.txt │ │ ├── 0f5bf0340c8a6536619e3637f98dd785-input.txt │ │ ├── 1031a121ffdc592039f506de68d83227-input.txt │ │ ├── 1200d80839e0163ee877d0ecdb5f59a9-input.txt │ │ ├── 1247f96d0ea75f1819f67aef9ccee81a-input.txt │ │ ├── 159265f053465e10f26deebedc032842-input.txt │ │ ├── 1619c4bf63685bbdae0ddc2a6c3eb806-input.txt │ │ ├── 188ea14089ab0c067969778405ffa0a5-input.txt │ │ ├── 1acd98771b4610348e4f7a86baeaeb07-input.txt │ │ ├── 1cb3fc75346a0b3e335b7763f3aefee7-input.txt │ │ ├── 1e6b1dfcc76bb0aeb861438e5a65b1b3-input.txt │ │ ├── 1f37f4a34698dfae037df9f7e31fe672-input.txt │ │ ├── 22c24449bbca4dfd3e87ddd9dff84bae-input.txt │ │ ├── 26a06aae89eea387448f0fea8dc8f10b-input.txt │ │ ├── 26f37d5e02178f61b9f407720a52437c-input.txt │ │ ├── 296230f490c5776869f1eb78f4730d25-input.txt │ │ ├── 298b2154937611bf1d450760c132b5cc-input.txt │ │ ├── 298fbf7356f1231208d06f4f2ad8798d-input.txt │ │ ├── 2b71cbb6db4e8aad0383e6d0be926257-input.txt │ │ ├── 2baf81912600c6d1826ff936caeb8285-input.txt │ │ ├── 300f5bd07082222ac363f46fd9013f0f-input.txt │ │ ├── 3182e1c51629388a05ed729f0ee09a13-input.txt │ │ ├── 3241f889220d07a2b00281d62dc49ba0-input.txt │ │ ├── 32459c3ac26b88f2288d99b772ac7501-input.txt │ │ ├── 33d7ff5b39cac38ebda51273490991c6-input.txt │ │ ├── 342738657306f13a799f60178d51efab-input.txt │ │ ├── 3904f949686c67a747130f97ab02c439-input.txt │ │ ├── 39621f5efdbc3ab241dc77658e211e89-input.txt │ │ ├── 3a48e16b262b3ca5c46c74592d8194eb-input.txt │ │ ├── 428410aad1adafd3de4ab5ef1f51d197-input.txt │ │ ├── 48f1d26c9a440d410a919d2b4d211a56-input.txt │ │ ├── 4d826a23090dcb351fe16bde1ed303ef-input.txt │ │ ├── 4e2aa0b663a0905165642640ba7c7b40-input.txt │ │ ├── 4fe121248982bf13ddea4c3aa2f3c8e4-input.txt │ │ ├── 51e2c92cd2d2c1846a75966a8b5f8fa7-input.txt │ │ ├── 5527f71ff5b590db200a37fdec1f07e9-input.txt │ │ ├── 5827a1eb0000e6704981c2772674e8c6-input.txt │ │ ├── 59d8be44e569a60196f1d057d9f8d537-input.txt │ │ ├── 5cd203ccd7fd810df1e47f2632cfb8b3-input.txt │ │ ├── 61ef5e2c04676960b580911ee0789f0f-input.txt │ │ ├── 6221c880c4301b98861a5773adc0a5c5-input.txt │ │ ├── 638f94da7d94af6c925cdd6770c2fbcb-input.txt │ │ ├── 66ab2a9f044eb7b9e93ec32b389cf432-input.txt │ │ ├── 67ccec6cdae9020e14666374cdfa428c-input.txt │ │ ├── 68b35f750ef8ef6cfef8e6870d78335f-input.txt │ │ ├── 6a9499b5db6a5544d4a3bd5abe5bab8c-input.txt │ │ ├── 6c98bc90379275ae34c40e6554fde66f-input.txt │ │ ├── 71b9bda642084ca166eb9e027a0f2567-input.txt │ │ ├── 71d3441c3d7db2b5d3f6aef1769ae066-input.txt │ │ ├── 756ec22bf0e3f30808ece37cf204f35f-input.txt │ │ ├── 757bdd64864eef12ec8d17e44a20d3af-input.txt │ │ ├── 7ca7fc76ef5e434e4131fd40f446264d-input.txt │ │ ├── 7e5b04f790c99757e8e3d7e3cec1dafe-input.txt │ │ ├── 82a066394aa1644facad250e7ebbb33e-input.txt │ │ ├── 85cf22aaca8385c39d97faf91609e944-input.txt │ │ ├── 87380e6681281335f6a00a5b91686faa-input.txt │ │ ├── 8eaf9ee7afd4420f153c29f3a3c1b2b5-input.txt │ │ ├── 95ce0e66d87eec23272887bbf09c6352-input.txt │ │ ├── 95edd6eb65a12964e077444eb4e3a3de-input.txt │ │ ├── 960fda478d2e72386b13e2e4d718b81c-input.txt │ │ ├── 9b5f7398c7fff3daff9d10447bce2dc8-input.txt │ │ ├── 9cd43c7d6c1c9c775343d63a055897a3-input.txt │ │ ├── a709be5cb63bc90aa6c3f7a73092b2e3-input.txt │ │ ├── a848b3fa8eff279d325502561e8c54a0-input.txt │ │ ├── a968bfb65e9cd4c1ae9a5a4415b60506-input.txt │ │ ├── aadd820150b2e57c9e86fa24f16e8024-input.txt │ │ ├── b43b8e8744cfdf9e565c0965a732601a-input.txt │ │ ├── b538e5202c8147f8ceb4ae4bbe520b83-input.txt │ │ ├── b5f19f60981791418791852867220962-input.txt │ │ ├── b9b4d59dd5fe02110b2b9d71fe452a11-input.txt │ │ ├── bec04f9fa24797601cd715f36cea25b5-input.txt │ │ ├── bf8bef7c2efbdffecd64dde02524fabc-input.txt │ │ ├── bfd2b0fd8b03b6ce899d9933f754fd4e-input.txt │ │ ├── c12387b29b5c6c775a2a5740182b2a97-input.txt │ │ ├── c1abac76dddbcd559c39a34917ea6ac0-input.txt │ │ ├── c40582ed24151a2cedc5d02211acd660-input.txt │ │ ├── c74692d736ad2906144579554e9f8a4f-input.txt │ │ ├── c78e89a2018480fa83dbb6c976dda764-input.txt │ │ ├── cef35433ba617c7315f1cba878f39b51-input.txt │ │ ├── d1658773edd50dd029f534b71538b115-input.txt │ │ ├── d2f910d60bcd407b55db38824a31cf72-input.txt │ │ ├── d3dd85c2f196c264c3a0ef2392ded9c2-input.txt │ │ ├── d92462ff6acc7f56c2af9ea23020720d-input.txt │ │ ├── d93d2dd9c23817883ea75591ce44aa0d-input.txt │ │ ├── dd8e235a21be99f64d16f560172254ee-input.txt │ │ ├── dffdf4d729371ab6786e2e61e02d73e3-input.txt │ │ ├── e070d66397370b94d32fed1166c5ce1f-input.txt │ │ ├── e249e4ece14d5d044d835e22ccbc0d8d-input.txt │ │ ├── e2e770c248a9e0f279db20247101569c-input.txt │ │ ├── e2f0f7f185aacf05b0cc1aad4ae72f62-input.txt │ │ ├── e82c02ee4b2ec5d4aea190ba6575ce18-input.txt │ │ ├── e866ecd8fda68718cdc6617cbed3c9f1-input.txt │ │ ├── e976e63d5b9a824623337557f258555c-input.txt │ │ ├── eb13879aaf5054aca01210018c5eb237-input.txt │ │ ├── ebc108fdd968235a44a5c9257ff3446d-input.txt │ │ ├── ed62d6617c68231297c428b3b2025cc2-input.txt │ │ ├── f234952959deb0709759afa78e64c7fe-input.txt │ │ ├── f414b676e635647e4aec93f8df1b1ec8-input.txt │ │ ├── f52bc8e4b963243dcd2703510f47c4a9-input.txt │ │ ├── f5489062b2b7d23e5ee7d5b706e6f4a5-input.txt │ │ ├── f79be0e8a3740241f2aa45392201c722-input.txt │ │ ├── f94f7ffba968760fed26effa2da8f386-input.txt │ │ ├── fa2aec63a327d0937d0921e59283ae62-input.txt │ │ └── fbd1c81ec24142f76a00f3c01c1cbef9-input.txt ├── 13 │ ├── README.md │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── sample-input.txt │ └── track.js ├── 14 │ ├── README.md │ ├── get-all.js │ ├── input.js │ ├── part-one.js │ └── part-two.js ├── 16 │ ├── README.md │ ├── device-instructions.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 17 │ ├── PLAN.md │ ├── README.md │ ├── animation.mp4 │ ├── filled-grid.png │ ├── filled-grid.txt │ ├── grid.png │ ├── grid.txt │ ├── ground.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── visualization.js ├── 18 │ ├── README.md │ ├── find-cycle-array.js │ ├── forest.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 19 │ ├── README.md │ ├── device-instructions.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two-output-registers-on-change.js │ ├── part-two-output-registers.js │ ├── part-two.js │ └── sample-input.js ├── 20 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── maze.txt │ ├── part-one.js │ ├── part-two.js │ ├── regex-map.js │ └── test.js ├── 21 │ ├── 21-p2.tsv │ ├── README.md │ ├── device-instructions.js │ ├── input.js │ ├── input.txt │ ├── output-registers-on-change.js │ ├── output-registers.js │ ├── part-one.js │ ├── part-two.js │ ├── reg-d-on-ip-28.js │ ├── reg-d-on-ip-6.js │ ├── sample-input.js │ └── smallest-reg-d.js ├── 22 │ ├── README.md │ ├── cave.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js └── 25 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── night-sky.js │ └── part-one.js ├── 2019 ├── 1 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2 │ ├── README.md │ ├── computer.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 3 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 4 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 5 │ ├── README.md │ ├── computer.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 6 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── orbit-map.js │ ├── part-one.js │ └── part-two.js ├── 7 │ ├── README.md │ ├── circuit.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 8 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 9 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── intcode-computer.js │ ├── part-one.js │ └── part-two.js ├── 10 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── sample-input-1.txt │ ├── sample-input-2.txt │ ├── sample-input-3.txt │ ├── sample-input-4.txt │ ├── sample-input-5.txt │ ├── sample-input-part-2.txt │ └── test-tan.js ├── 11 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── intcode-computer.js │ ├── part-one.js │ └── part-two.js ├── 12 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── moons.js │ ├── part-one.js │ └── part-two.js ├── 13 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── intcode-computer.js │ ├── part-one.js │ └── part-two.js ├── 14 │ ├── README.md │ ├── formula.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── sample-input-1.txt │ ├── sample-input-2.txt │ ├── sample-input-3.txt │ ├── sample-input-4.txt │ ├── sample-input-5.txt │ └── sample-input-6.txt ├── 16 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one-optimized.js │ ├── part-one.js │ └── part-two.js ├── 18 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── maze.js │ ├── part-one.js │ └── part-two.js ├── 19 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── intcode-computer-optimized.js │ ├── part-one.js │ ├── part-two.js │ ├── tractor-beam.html │ └── tractor-beam.js └── 23 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── intcode-computer-optimized.js │ ├── network.js │ ├── part-one.js │ └── part-two.js ├── 2020 ├── 1 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── more-performant.js │ ├── part-one.js │ └── part-two.js ├── 2 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 3 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 4 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── passport.js ├── 5 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── plane.js ├── 6 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 7 │ ├── README.md │ ├── bags.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 8 │ ├── README.md │ ├── computer.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 9 │ ├── README.md │ ├── encoding.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 10 │ ├── README.md │ ├── graph.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two-memoized.js │ └── part-two.js ├── 11 │ ├── README.md │ ├── grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 12 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── map.js │ ├── part-one.js │ └── part-two.js ├── 13 │ ├── README.md │ ├── bus.js │ ├── input.js │ ├── input.txt │ ├── math-util.js │ ├── part-one.js │ └── part-two.js ├── 14 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 15 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── say-game.js ├── 16 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── ticket.js ├── 17 │ ├── InfiniteNDimensionalGrid.js │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 18 │ ├── README.md │ ├── calc.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 19 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── messages.js │ ├── part-one.js │ └── part-two.js ├── 20 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── puzzle.js │ ├── sample-input-1.txt │ └── sample-input-2.txt ├── 21 │ ├── README.md │ ├── allergen.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 22 │ ├── README.md │ ├── game.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 23 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 24 │ ├── README.md │ ├── hex-grid-red-blob.js │ ├── hex.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js └── 25 │ ├── README.md │ ├── input.js │ ├── input.txt │ └── part-one.js ├── 2021 ├── 1 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 3 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 4 │ ├── README.md │ ├── bingo.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 5 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 6 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 7 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 8 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 9 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── lava.js │ ├── part-one.js │ └── part-two.js ├── 10 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── syntax.js ├── 11 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 12 │ ├── README.md │ ├── graph.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 13 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── sample-input.txt ├── 14 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 15 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ ├── rendering.html │ └── visualization.js ├── 16 │ ├── README.md │ ├── bits.js │ ├── input.js │ ├── input.txt │ ├── package.json │ ├── part-one.js │ └── part-two.js ├── 17 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── launcher.js │ ├── part-one.js │ └── part-two.js ├── 18 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── snailfish.js ├── 20 │ ├── README.md │ ├── grid-slices.js │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── visualization.txt ├── 24 │ ├── README.md │ ├── alu.js │ ├── input.js │ ├── input.txt │ ├── package.json │ ├── parse-instructions.js │ ├── part-one.html │ ├── part-one.js │ ├── part-two.js │ ├── program-generic.js │ ├── program-orig.js │ ├── program-table.md │ ├── programs.js │ └── to-csv.js └── 25 │ ├── README.md │ ├── frames │ ├── frame_000.png │ ├── frame_001.png │ ├── frame_002.png │ ├── frame_003.png │ ├── frame_004.png │ ├── frame_005.png │ ├── frame_006.png │ ├── frame_007.png │ ├── frame_008.png │ ├── frame_009.png │ ├── frame_010.png │ ├── frame_011.png │ ├── frame_012.png │ ├── frame_013.png │ ├── frame_014.png │ ├── frame_015.png │ ├── frame_016.png │ ├── frame_017.png │ ├── frame_018.png │ ├── frame_019.png │ ├── frame_020.png │ ├── frame_021.png │ ├── frame_022.png │ ├── frame_023.png │ ├── frame_024.png │ ├── frame_025.png │ ├── frame_026.png │ ├── frame_027.png │ ├── frame_028.png │ ├── frame_029.png │ ├── frame_030.png │ ├── frame_031.png │ ├── frame_032.png │ ├── frame_033.png │ ├── frame_034.png │ ├── frame_035.png │ ├── frame_036.png │ ├── frame_037.png │ ├── frame_038.png │ ├── frame_039.png │ ├── frame_040.png │ ├── frame_041.png │ ├── frame_042.png │ ├── frame_043.png │ ├── frame_044.png │ ├── frame_045.png │ ├── frame_046.png │ ├── frame_047.png │ ├── frame_048.png │ ├── frame_049.png │ ├── frame_050.png │ ├── frame_051.png │ ├── frame_052.png │ ├── frame_053.png │ ├── frame_054.png │ ├── frame_055.png │ ├── frame_056.png │ ├── frame_057.png │ ├── frame_058.png │ ├── frame_059.png │ ├── frame_060.png │ ├── frame_061.png │ ├── frame_062.png │ ├── frame_063.png │ ├── frame_064.png │ ├── frame_065.png │ ├── frame_066.png │ ├── frame_067.png │ ├── frame_068.png │ ├── frame_069.png │ ├── frame_070.png │ ├── frame_071.png │ ├── frame_072.png │ ├── frame_073.png │ ├── frame_074.png │ ├── frame_075.png │ ├── frame_076.png │ ├── frame_077.png │ ├── frame_078.png │ ├── frame_079.png │ ├── frame_080.png │ ├── frame_081.png │ ├── frame_082.png │ ├── frame_083.png │ ├── frame_084.png │ ├── frame_085.png │ ├── frame_086.png │ ├── frame_087.png │ ├── frame_088.png │ ├── frame_089.png │ ├── frame_090.png │ ├── frame_091.png │ ├── frame_092.png │ ├── frame_093.png │ ├── frame_094.png │ ├── frame_095.png │ ├── frame_096.png │ ├── frame_097.png │ ├── frame_098.png │ ├── frame_099.png │ ├── frame_100.png │ ├── frame_101.png │ ├── frame_102.png │ ├── frame_103.png │ ├── frame_104.png │ ├── frame_105.png │ ├── frame_106.png │ ├── frame_107.png │ ├── frame_108.png │ ├── frame_109.png │ ├── frame_110.png │ ├── frame_111.png │ ├── frame_112.png │ ├── frame_113.png │ ├── frame_114.png │ ├── frame_115.png │ ├── frame_116.png │ ├── frame_117.png │ ├── frame_118.png │ ├── frame_119.png │ ├── frame_120.png │ ├── frame_121.png │ ├── frame_122.png │ ├── frame_123.png │ ├── frame_124.png │ ├── frame_125.png │ ├── frame_126.png │ ├── frame_127.png │ ├── frame_128.png │ ├── frame_129.png │ ├── frame_130.png │ ├── frame_131.png │ ├── frame_132.png │ ├── frame_133.png │ ├── frame_134.png │ ├── frame_135.png │ ├── frame_136.png │ ├── frame_137.png │ ├── frame_138.png │ ├── frame_139.png │ ├── frame_140.png │ ├── frame_141.png │ ├── frame_142.png │ ├── frame_143.png │ ├── frame_144.png │ ├── frame_145.png │ ├── frame_146.png │ ├── frame_147.png │ ├── frame_148.png │ ├── frame_149.png │ ├── frame_150.png │ ├── frame_151.png │ ├── frame_152.png │ ├── frame_153.png │ ├── frame_154.png │ ├── frame_155.png │ ├── frame_156.png │ ├── frame_157.png │ ├── frame_158.png │ ├── frame_159.png │ ├── frame_160.png │ ├── frame_161.png │ ├── frame_162.png │ ├── frame_163.png │ ├── frame_164.png │ ├── frame_165.png │ ├── frame_166.png │ ├── frame_167.png │ ├── frame_168.png │ ├── frame_169.png │ ├── frame_170.png │ ├── frame_171.png │ ├── frame_172.png │ ├── frame_173.png │ ├── frame_174.png │ ├── frame_175.png │ ├── frame_176.png │ ├── frame_177.png │ ├── frame_178.png │ ├── frame_179.png │ ├── frame_180.png │ ├── frame_181.png │ ├── frame_182.png │ ├── frame_183.png │ ├── frame_184.png │ ├── frame_185.png │ ├── frame_186.png │ ├── frame_187.png │ ├── frame_188.png │ ├── frame_189.png │ ├── frame_190.png │ ├── frame_191.png │ ├── frame_192.png │ ├── frame_193.png │ ├── frame_194.png │ ├── frame_195.png │ ├── frame_196.png │ ├── frame_197.png │ ├── frame_198.png │ ├── frame_199.png │ ├── frame_200.png │ ├── frame_201.png │ ├── frame_202.png │ ├── frame_203.png │ ├── frame_204.png │ ├── frame_205.png │ ├── frame_206.png │ ├── frame_207.png │ ├── frame_208.png │ ├── frame_209.png │ ├── frame_210.png │ ├── frame_211.png │ ├── frame_212.png │ ├── frame_213.png │ ├── frame_214.png │ ├── frame_215.png │ ├── frame_216.png │ ├── frame_217.png │ ├── frame_218.png │ ├── frame_219.png │ ├── frame_220.png │ ├── frame_221.png │ ├── frame_222.png │ ├── frame_223.png │ ├── frame_224.png │ ├── frame_225.png │ ├── frame_226.png │ ├── frame_227.png │ ├── frame_228.png │ ├── frame_229.png │ ├── frame_230.png │ ├── frame_231.png │ ├── frame_232.png │ ├── frame_233.png │ ├── frame_234.png │ ├── frame_235.png │ ├── frame_236.png │ ├── frame_237.png │ ├── frame_238.png │ ├── frame_239.png │ ├── frame_240.png │ ├── frame_241.png │ ├── frame_242.png │ ├── frame_243.png │ ├── frame_244.png │ ├── frame_245.png │ ├── frame_246.png │ ├── frame_247.png │ ├── frame_248.png │ ├── frame_249.png │ ├── frame_250.png │ ├── frame_251.png │ ├── frame_252.png │ ├── frame_253.png │ ├── frame_254.png │ ├── frame_255.png │ ├── frame_256.png │ ├── frame_257.png │ ├── frame_258.png │ ├── frame_259.png │ ├── frame_260.png │ ├── frame_261.png │ ├── frame_262.png │ ├── frame_263.png │ ├── frame_264.png │ ├── frame_265.png │ ├── frame_266.png │ ├── frame_267.png │ ├── frame_268.png │ ├── frame_269.png │ ├── frame_270.png │ ├── frame_271.png │ ├── frame_272.png │ ├── frame_273.png │ ├── frame_274.png │ ├── frame_275.png │ ├── frame_276.png │ ├── frame_277.png │ ├── frame_278.png │ ├── frame_279.png │ ├── frame_280.png │ ├── frame_281.png │ ├── frame_282.png │ ├── frame_283.png │ ├── frame_284.png │ ├── frame_285.png │ ├── frame_286.png │ ├── frame_287.png │ ├── frame_288.png │ ├── frame_289.png │ ├── frame_290.png │ ├── frame_291.png │ ├── frame_292.png │ ├── frame_293.png │ ├── frame_294.png │ ├── frame_295.png │ ├── frame_296.png │ ├── frame_297.png │ ├── frame_298.png │ ├── frame_299.png │ ├── frame_300.png │ ├── frame_301.png │ ├── frame_302.png │ ├── frame_303.png │ ├── frame_304.png │ ├── frame_305.png │ ├── frame_306.png │ ├── frame_307.png │ ├── frame_308.png │ ├── frame_309.png │ ├── frame_310.png │ ├── frame_311.png │ ├── frame_312.png │ ├── frame_313.png │ ├── frame_314.png │ ├── frame_315.png │ ├── frame_316.png │ ├── frame_317.png │ ├── frame_318.png │ ├── frame_319.png │ ├── frame_320.png │ ├── frame_321.png │ ├── frame_322.png │ ├── frame_323.png │ ├── frame_324.png │ ├── frame_325.png │ ├── frame_326.png │ ├── frame_327.png │ ├── frame_328.png │ ├── frame_329.png │ ├── frame_330.png │ ├── frame_331.png │ ├── frame_332.png │ ├── frame_333.png │ ├── frame_334.png │ ├── frame_335.png │ └── frame_336.png │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one-fast.js │ ├── part-one-visualization.js │ ├── part-one.js │ ├── sea-floor.js │ ├── visualization.gif │ └── visualization.mp4 ├── 2022 ├── 1 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 3 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── utils.js ├── 4 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── utils.js ├── 5 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 6 │ ├── README.md │ ├── bitwise.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 7 │ ├── README.md │ ├── filesystem.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 8 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 9 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 10 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 11 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── monkey.js │ ├── part-one.js │ └── part-two.js ├── 12 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js └── 13 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2023 ├── 1 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 2 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 3 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 4 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 6 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js ├── 7 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── poker.js ├── 9 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── sample.txt ├── 11 │ ├── README.md │ ├── input.js │ ├── input.txt │ ├── part-one.js │ └── part-two.js └── 14 │ ├── README.md │ ├── infinite-grid.js │ ├── input.js │ ├── input.txt │ ├── part-one.js │ ├── part-two.js │ └── sample-input.txt ├── 2024 ├── 1 │ ├── README.md │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ └── part-two.ts ├── 2 │ ├── README.md │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ └── part-two.ts ├── 3 │ ├── README.md │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ └── part-two.ts ├── 4 │ ├── README.md │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ ├── part-two.ts │ └── sample-input.txt ├── 5 │ ├── README.md │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ └── part-two.ts ├── 7 │ ├── README.md │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ ├── part-two.ts │ └── sample-input.txt ├── 8 │ ├── README.md │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ ├── part-two.ts │ └── sample-input.txt ├── 9 │ ├── README.md │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ ├── part-two.ts │ └── sample-input.txt ├── 10 │ ├── README.md │ ├── infinite-grid.ts │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ ├── part-two.ts │ └── sample-input.txt └── 11 │ ├── README.md │ ├── input.ts │ ├── input.txt │ ├── part-one.ts │ ├── part-two.ts │ └── sample-input.txt ├── .gitignore ├── .prettierrc ├── @types └── generatorics.d.ts ├── LICENSE ├── README.md ├── docs ├── 2016 │ └── day │ │ ├── 23.md │ │ └── 25.md ├── 2017 │ └── day │ │ ├── 21.md │ │ └── 23.md ├── 2018 │ └── day │ │ ├── 1.md │ │ └── 10.md ├── 2019 │ └── day │ │ └── 13.md ├── Gemfile ├── Gemfile.lock ├── _config.yml ├── _layouts │ └── default.html ├── assets │ ├── css │ │ └── style.scss │ ├── img │ │ ├── day-10-visualization.gif │ │ └── day-12-visualization.png │ ├── js │ │ ├── 2016 │ │ │ ├── 23 │ │ │ │ ├── codesandbox │ │ │ │ │ ├── BreakOn.js │ │ │ │ │ ├── Controls.js │ │ │ │ │ ├── Device.js │ │ │ │ │ ├── Instruction.js │ │ │ │ │ ├── Program.js │ │ │ │ │ ├── Registers.js │ │ │ │ │ ├── data.js │ │ │ │ │ ├── index.js │ │ │ │ │ └── styles.css │ │ │ │ ├── main.bundle.js │ │ │ │ └── main.js │ │ │ └── 25 │ │ │ │ └── main.bundle.js │ │ └── 2017 │ │ │ └── 23 │ │ │ ├── main.bundle.js │ │ │ └── main.bundle.js.map │ └── media │ │ ├── 2018-day-22-sample-visualization.mp4 │ │ ├── 2019-day-13-visualization.mp4 │ │ └── day-13-visualization.mp4 └── index.md ├── package.json ├── tsconfig.json └── yarn.lock /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "arrowParens": "always", 3 | "bracketSameLine": false, 4 | "bracketSpacing": true, 5 | "jsxSingleQuote": false, 6 | "printWidth": 100, 7 | "quoteProps": "as-needed", 8 | "semi": true, 9 | "singleQuote": true, 10 | "tabWidth": 4, 11 | "trailingComma": "es5", 12 | "useTabs": true 13 | } -------------------------------------------------------------------------------- /2015/1/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(''); 9 | 10 | module.exports = input; 11 | -------------------------------------------------------------------------------- /2015/1/part-one.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | 3 | const GO_UP = '('; 4 | const GO_DOWN = ')'; 5 | 6 | let final_floor = input 7 | .map(v => (v === GO_UP ? 1 : -1)) 8 | .reduce((a, b) => a + b, 0); 9 | 10 | console.log(`Santa ends up on floor "${final_floor}"`); 11 | -------------------------------------------------------------------------------- /2015/10/input.js: -------------------------------------------------------------------------------- 1 | module.exports = 1321131112; 2 | -------------------------------------------------------------------------------- /2015/11/input.js: -------------------------------------------------------------------------------- 1 | module.exports = 'hepxcrrq'; 2 | -------------------------------------------------------------------------------- /2015/12/part-one.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | const traverse = require('traverse'); 3 | 4 | let sum = 0; 5 | traverse(input).forEach(val => { 6 | if (typeof val === 'number') { 7 | sum += val; 8 | } 9 | }); 10 | 11 | console.log(sum); 12 | -------------------------------------------------------------------------------- /2015/14/part-one.js: -------------------------------------------------------------------------------- 1 | const Race = require('./race'); 2 | const input = require('./input'); 3 | 4 | const RACE_TIME = 2503; 5 | let race = new Race(input, RACE_TIME); 6 | 7 | race.run(); 8 | 9 | console.log(race.winner.distance); -------------------------------------------------------------------------------- /2015/14/part-two.js: -------------------------------------------------------------------------------- 1 | const Race = require('./race'); 2 | const input = require('./input'); 3 | 4 | const RACE_TIME = 2503; 5 | let race = new Race(input, RACE_TIME); 6 | 7 | race.run(); 8 | 9 | console.log(race.winnerByScore.score); -------------------------------------------------------------------------------- /2015/15/input.txt: -------------------------------------------------------------------------------- 1 | Frosting: capacity 4, durability -2, flavor 0, texture 0, calories 5 2 | Candy: capacity 0, durability 5, flavor -1, texture 0, calories 8 3 | Butterscotch: capacity -1, durability 0, flavor 5, texture 0, calories 6 4 | Sugar: capacity 0, durability 0, flavor -2, texture 2, calories 1 5 | -------------------------------------------------------------------------------- /2015/17/input.js: -------------------------------------------------------------------------------- 1 | const CONTAINERS = [33, 14, 18, 20, 45, 35, 16, 35, 1, 13, 18, 13, 50, 44, 48, 6, 24, 41, 30, 42]; 2 | 3 | module.exports = CONTAINERS; 4 | -------------------------------------------------------------------------------- /2015/17/input.txt: -------------------------------------------------------------------------------- 1 | 33 2 | 14 3 | 18 4 | 20 5 | 45 6 | 35 7 | 16 8 | 35 9 | 1 10 | 13 11 | 18 12 | 13 13 | 50 14 | 44 15 | 48 16 | 6 17 | 24 18 | 41 19 | 30 20 | 42 21 | -------------------------------------------------------------------------------- /2015/18/part-one.js: -------------------------------------------------------------------------------- 1 | const Grid = require('./grid'); 2 | const input = require('./input'); 3 | 4 | let grid = new Grid(input); 5 | 6 | const NUM_OF_STEPS_TO_SIMULATE = 100; 7 | grid.tick(NUM_OF_STEPS_TO_SIMULATE); 8 | 9 | console.log(grid.countLightsInState(true)); 10 | -------------------------------------------------------------------------------- /2015/18/part-two.js: -------------------------------------------------------------------------------- 1 | const Grid = require('./grid'); 2 | const input = require('./input'); 3 | 4 | let grid = new Grid(input, true); 5 | 6 | const NUM_OF_STEPS_TO_SIMULATE = 100; 7 | grid.tick(NUM_OF_STEPS_TO_SIMULATE); 8 | 9 | console.log(grid.countLightsInState(true)); 10 | -------------------------------------------------------------------------------- /2015/18/sample-input.js: -------------------------------------------------------------------------------- 1 | const ON = '#'; 2 | const OFF = '.'; 3 | 4 | const ROWS = [ 5 | '.#.#.#', 6 | '...##.', 7 | '#....#', 8 | '..#...', 9 | '#.#..#', 10 | '####..', 11 | ]; 12 | 13 | const GRID = ROWS.map(row => row.split('').map(c => c === ON)); 14 | 15 | module.exports = GRID; 16 | -------------------------------------------------------------------------------- /2015/2/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = input; -------------------------------------------------------------------------------- /2015/20/input.js: -------------------------------------------------------------------------------- 1 | module.exports = 29000000; 2 | -------------------------------------------------------------------------------- /2015/21/input.txt: -------------------------------------------------------------------------------- 1 | Hit Points: 103 2 | Damage: 9 3 | Armor: 2 4 | -------------------------------------------------------------------------------- /2015/22/input.txt: -------------------------------------------------------------------------------- 1 | Hit Points: 51 2 | Damage: 9 3 | -------------------------------------------------------------------------------- /2015/23/part-one.js: -------------------------------------------------------------------------------- 1 | // const { program } = require('./sample-input'); 2 | const { sampleInput, input } = require('./input'); 3 | const CPU = require('./cpu'); 4 | 5 | let cpu = new CPU(input); 6 | 7 | let iter = 0; 8 | while (cpu.run() !== false) { 9 | // Do nothing 10 | } 11 | 12 | console.log(cpu.registers.b) -------------------------------------------------------------------------------- /2015/23/part-two.js: -------------------------------------------------------------------------------- 1 | // const { program } = require('./sample-input'); 2 | const { sampleInput, input } = require('./input'); 3 | const CPU = require('./cpu'); 4 | 5 | let cpu = new CPU(input, { a: 1, b: 0 }); 6 | 7 | let iter = 0; 8 | while (cpu.run() !== false) { 9 | // Do nothing 10 | } 11 | 12 | console.log(cpu.registers.b) -------------------------------------------------------------------------------- /2015/24/input.txt: -------------------------------------------------------------------------------- 1 | 1 2 | 2 3 | 3 4 | 5 5 | 7 6 | 13 7 | 17 8 | 19 9 | 23 10 | 29 11 | 31 12 | 37 13 | 41 14 | 43 15 | 53 16 | 59 17 | 61 18 | 67 19 | 71 20 | 73 21 | 79 22 | 83 23 | 89 24 | 97 25 | 101 26 | 103 27 | 107 28 | 109 29 | 113 30 | -------------------------------------------------------------------------------- /2015/25/input.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | row: 2981, 3 | column: 3075, 4 | }; 5 | -------------------------------------------------------------------------------- /2015/25/input.txt: -------------------------------------------------------------------------------- 1 | To continue, please consult the code grid in the manual. Enter the code at row 2981, column 3075. 2 | -------------------------------------------------------------------------------- /2015/25/part-one.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | const Grid = require('./grid'); 3 | const assert = require('assert'); 4 | 5 | let test_grid = new Grid(); 6 | assert.strictEqual(test_grid.getValueAt({ row: 4, column: 6 }), 31527494); 7 | 8 | let grid = new Grid(); 9 | console.log(grid.getValueAt(input)); 10 | -------------------------------------------------------------------------------- /2015/3/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(''); 9 | 10 | module.exports = input; 11 | -------------------------------------------------------------------------------- /2015/3/part-one.js: -------------------------------------------------------------------------------- 1 | const directions = require('./input'); 2 | const Santa = require('./santa'); 3 | 4 | let santa = new Santa(directions); 5 | 6 | santa.travel(); 7 | 8 | console.log(`Santa brought presents to ${santa.getTotalHousesVisted()} houses`); 9 | -------------------------------------------------------------------------------- /2015/3/part-two.js: -------------------------------------------------------------------------------- 1 | const directions = require('./input'); 2 | const SantaAndRoboSanta = require('./santa-and-robo-santa'); 3 | 4 | let santa = new SantaAndRoboSanta(directions); 5 | 6 | santa.travel(); 7 | 8 | console.log( 9 | `Santa and Robo Santa brought presents to ${santa.getTotalHousesVisted()} houses` 10 | ); 11 | -------------------------------------------------------------------------------- /2015/4/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim(); 8 | 9 | module.exports = input; 10 | -------------------------------------------------------------------------------- /2015/4/input.txt: -------------------------------------------------------------------------------- 1 | yzbqklnj 2 | -------------------------------------------------------------------------------- /2015/5/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = input; 11 | -------------------------------------------------------------------------------- /2015/5/part-one.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | const { NaughtyStringOldRules } = require('./naughty-string'); 3 | 4 | let nice_string_count = input 5 | .map(s => new NaughtyStringOldRules(s)) 6 | .filter(s => !s.isNaughty) 7 | .length; 8 | 9 | console.log(nice_string_count); 10 | -------------------------------------------------------------------------------- /2015/5/part-two.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | const { NaughtyStringNewRules } = require('./naughty-string'); 3 | 4 | let nice_string_count = input 5 | .map(s => new NaughtyStringNewRules(s)) 6 | .filter(s => !s.isNaughty) 7 | .length; 8 | 9 | console.log(nice_string_count); 10 | -------------------------------------------------------------------------------- /2015/7/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2015/7/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Circuit = require('./circuit'); 3 | 4 | let circuit = new Circuit(input); 5 | 6 | console.log(circuit.gates['a'].getValue()); 7 | -------------------------------------------------------------------------------- /2015/8/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = { input }; -------------------------------------------------------------------------------- /2015/8/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | 3 | const parsed_input = eval(`[${input.join(',')}]`); 4 | 5 | let raw_sum = input.reduce((a, b) => a + b.length, 0); 6 | let parsed_sum = parsed_input.reduce((a, b) => a + b.length, 0); 7 | 8 | console.log(raw_sum - parsed_sum); 9 | -------------------------------------------------------------------------------- /2015/8/sample-input.js: -------------------------------------------------------------------------------- 1 | module.exports = ['', 'abc', 'aaa"aaa', '\x27']; 2 | -------------------------------------------------------------------------------- /2015/8/sample-input.txt: -------------------------------------------------------------------------------- 1 | "" 2 | "abc" 3 | "aaa\"aaa" 4 | "\x27" -------------------------------------------------------------------------------- /2016/10/part-one.js: -------------------------------------------------------------------------------- 1 | const assert = require('assert'); 2 | const { input, sampleInputs } = require('./input'); 3 | const BotComparisons = require('./bot-comparisons'); 4 | 5 | let bot_comparison = new BotComparisons(input); 6 | bot_comparison.whichBotCompared61And17(); 7 | -------------------------------------------------------------------------------- /2016/10/part-two.js: -------------------------------------------------------------------------------- 1 | const assert = require('assert'); 2 | const { input, sampleInputs } = require('./input'); 3 | const BotComparisons = require('./bot-comparisons'); 4 | 5 | let bot_comparison = new BotComparisons(input); 6 | console.log(bot_comparison.productOfOutputs()); 7 | -------------------------------------------------------------------------------- /2016/11/part-two.js: -------------------------------------------------------------------------------- 1 | const { partTwoInput } = require('./input'); 2 | const { RTGPath } = require('./rtg-path'); 3 | 4 | const path = new RTGPath(partTwoInput); 5 | 6 | console.log(path.getPathFromVistedNode(path.goal), '\n============\n'); 7 | console.log(path.getShortestLengthToFourthFloor()); 8 | -------------------------------------------------------------------------------- /2016/11/sheet-incorrect-path.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2016/11/sheet-incorrect-path.xlsx -------------------------------------------------------------------------------- /2016/12/input.txt: -------------------------------------------------------------------------------- 1 | cpy 1 a 2 | cpy 1 b 3 | cpy 26 d 4 | jnz c 2 5 | jnz 1 5 6 | cpy 7 c 7 | inc d 8 | dec c 9 | jnz c -2 10 | cpy a c 11 | inc a 12 | dec b 13 | jnz b -2 14 | cpy c b 15 | dec d 16 | jnz d -6 17 | cpy 16 c 18 | cpy 12 d 19 | inc a 20 | dec d 21 | jnz d -2 22 | dec c 23 | jnz c -5 24 | -------------------------------------------------------------------------------- /2016/12/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Device = require('./device'); 3 | 4 | let device = new Device(input, { a: 0, b: 0, c: 1, d: 0 }); 5 | console.log(device.run()); 6 | -------------------------------------------------------------------------------- /2016/13/input.txt: -------------------------------------------------------------------------------- 1 | 1364 -------------------------------------------------------------------------------- /2016/14/input.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | testInput: { 3 | salt: 'abc', 4 | lastIndex: 22728, 5 | lastIndexStretch: 22551, 6 | }, 7 | input: `ihaygndm` 8 | }; 9 | -------------------------------------------------------------------------------- /2016/15/part-two.js: -------------------------------------------------------------------------------- 1 | const { partTwoInput } = require('./input'); 2 | const Disks = require('./disks'); 3 | 4 | let disk = new Disks(partTwoInput); 5 | let time = disk.getFirstTimeWhenCapsuleWouldFallThrough(); 6 | console.log(time); 7 | -------------------------------------------------------------------------------- /2016/16/part-two.js: -------------------------------------------------------------------------------- 1 | const Disk = require('./disk'); 2 | const { partTwoInput } = require('./input'); 3 | 4 | let disk = new Disk(partTwoInput); 5 | console.log(disk.checksum()); 6 | -------------------------------------------------------------------------------- /2016/17/input.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | input: 'ioramepc', 3 | sampleInputs: [ 4 | // [solution_path, starting_passcode, longest_path] 5 | ['DDRRRD', 'ihgpwlah', 370], 6 | ['DDUDRLRRUDRD', 'kglvqrro', 492], 7 | ['DRURDRUDDLLDLUURRDULRLDUUDDDRR', 'ulqzkmiv', 830], 8 | ], 9 | }; 10 | -------------------------------------------------------------------------------- /2016/18/input.txt: -------------------------------------------------------------------------------- 1 | .^^.^^^..^.^..^.^^.^^^^.^^.^^...^..^...^^^..^^...^..^^^^^^..^.^^^..^.^^^^.^^^.^...^^^.^^.^^^.^.^^.^. 2 | -------------------------------------------------------------------------------- /2016/18/part-two.js: -------------------------------------------------------------------------------- 1 | const Grid = require('./grid'); 2 | const { input, sampleInput } = require('./input'); 3 | 4 | let grid = new Grid(input); 5 | grid.addRows(400000 - 1); 6 | console.log(grid.countSafeTiles()); 7 | -------------------------------------------------------------------------------- /2016/19/input.js: -------------------------------------------------------------------------------- 1 | const NUMBER_OF_ELVES = 3014387; 2 | module.exports = NUMBER_OF_ELVES; 3 | -------------------------------------------------------------------------------- /2016/2/part-one.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const Keypad = require('./keypad'); 3 | 4 | let keypad = new Keypad(); 5 | console.log(keypad.pressAll(input)); 6 | 7 | -------------------------------------------------------------------------------- /2016/21/part-two.js: -------------------------------------------------------------------------------- 1 | const { unscramble } = require('./scramble'); 2 | const { input, partTwoPassword } = require('./input'); 3 | 4 | let result = unscramble(partTwoPassword, input.instructions); 5 | console.log(result); 6 | -------------------------------------------------------------------------------- /2016/23/input.txt: -------------------------------------------------------------------------------- 1 | cpy a b 2 | dec b 3 | cpy a d 4 | cpy 0 a 5 | cpy b c 6 | inc a 7 | dec c 8 | jnz c -2 9 | dec d 10 | jnz d -5 11 | dec b 12 | cpy b c 13 | cpy c d 14 | dec d 15 | inc c 16 | jnz d -2 17 | tgl c 18 | cpy -16 c 19 | jnz 1 c 20 | cpy 99 c 21 | jnz 77 d 22 | inc a 23 | inc d 24 | jnz d -2 25 | inc c 26 | jnz c -5 27 | -------------------------------------------------------------------------------- /2016/24/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Grid = require('./grid'); 3 | 4 | let grid = new Grid(input); 5 | console.log(grid.calculateShortestPathBetweenAllLocations(true)); 6 | -------------------------------------------------------------------------------- /2016/4/part-one.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | const isRoomValid = require('./is-room-valid'); 3 | 4 | let id_sum = 0; 5 | input.forEach(r => { 6 | if (isRoomValid(r)) { 7 | id_sum += r.id; 8 | } 9 | }); 10 | 11 | console.log(id_sum); 12 | -------------------------------------------------------------------------------- /2016/4/part-two.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | const decryptRooms = require('./decrypt-rooms'); 3 | 4 | let rooms = input.map(r => decryptRooms(r)).filter(r => r.decryptedName.includes('northpole')) 5 | let room = rooms[0]; 6 | 7 | console.log(`Room with name ${room.decryptedName} has ID of:\n${room.id}`); 8 | 9 | -------------------------------------------------------------------------------- /2016/5/input.js: -------------------------------------------------------------------------------- 1 | module.exports = 'wtnhxymk'; 2 | -------------------------------------------------------------------------------- /2016/5/md5.js: -------------------------------------------------------------------------------- 1 | const crypto = require('crypto'); 2 | 3 | const md5 = str => 4 | crypto 5 | .createHash('md5') 6 | .update(str) 7 | .digest('hex'); 8 | 9 | module.exports = md5; 10 | -------------------------------------------------------------------------------- /2016/6/part-one.js: -------------------------------------------------------------------------------- 1 | const assert = require('assert'); 2 | const { input, sampleInput } = require('./input'); 3 | const { getMostCommonLetterInEachColumn } = require('./message'); 4 | 5 | // Tests 6 | assert.strictEqual(getMostCommonLetterInEachColumn(sampleInput), 'easter'); 7 | 8 | console.log(getMostCommonLetterInEachColumn(input)); 9 | -------------------------------------------------------------------------------- /2016/6/part-two.js: -------------------------------------------------------------------------------- 1 | const assert = require('assert'); 2 | const { input, sampleInput } = require('./input'); 3 | const { getLeastCommonLetterInEachColumn } = require('./message'); 4 | 5 | // Tests 6 | assert.strictEqual(getLeastCommonLetterInEachColumn(sampleInput), 'advent'); 7 | 8 | console.log(getLeastCommonLetterInEachColumn(input)); 9 | -------------------------------------------------------------------------------- /2016/8/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Screen = require('./screen'); 3 | 4 | let screen = new Screen(input); 5 | screen.run(); 6 | 7 | screen.printScreen(); 8 | -------------------------------------------------------------------------------- /2017/10/input.txt: -------------------------------------------------------------------------------- 1 | 130,126,1,11,140,2,255,207,18,254,246,164,29,104,0,224 2 | -------------------------------------------------------------------------------- /2017/14/input.js: -------------------------------------------------------------------------------- 1 | module.exports = 'vbqugkhl'; 2 | -------------------------------------------------------------------------------- /2017/15/input.txt: -------------------------------------------------------------------------------- 1 | Generator A starts with 512 2 | Generator B starts with 191 3 | -------------------------------------------------------------------------------- /2017/17/input.js: -------------------------------------------------------------------------------- 1 | module.exports = 343; 2 | -------------------------------------------------------------------------------- /2017/18/part-one.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const assert = require('assert'); 3 | const Duet = require('./duet'); 4 | 5 | // Tests 6 | let test_duet = new Duet(sampleInput); 7 | assert.strictEqual(test_duet.run(), 4); 8 | 9 | let duet = new Duet(input); 10 | let sound = duet.run(); 11 | console.log(sound); 12 | -------------------------------------------------------------------------------- /2017/2/part-one.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | 3 | const checksum = input 4 | .map(row => { 5 | let max = Math.max(...row); 6 | let min = Math.min(...row); 7 | 8 | return max - min; 9 | }) 10 | .reduce((a, b) => a + b, 0); 11 | 12 | console.log(checksum); 13 | -------------------------------------------------------------------------------- /2017/20/part-two.js: -------------------------------------------------------------------------------- 1 | const assert = require('assert'); 2 | const { input } = require('./input'); 3 | const PointCloud = require('./point-cloud'); 4 | 5 | let cloud = new PointCloud(input); 6 | let total_points_left = cloud.runUntilNoPointsCollide(); 7 | 8 | console.log(total_points_left); 9 | -------------------------------------------------------------------------------- /2017/21/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { iterativelyExpandGrid, countPixelsInGrid } = require('./grid'); 3 | let final_grid = iterativelyExpandGrid(input, 5); 4 | let { pixels_on } = countPixelsInGrid(final_grid); 5 | 6 | console.log(pixels_on); 7 | -------------------------------------------------------------------------------- /2017/21/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { iterativelyExpandGrid, countPixelsInGrid } = require('./grid'); 3 | let final_grid = iterativelyExpandGrid(input, 18); 4 | let { pixels_on } = countPixelsInGrid(final_grid); 5 | 6 | console.log(pixels_on); 7 | -------------------------------------------------------------------------------- /2017/23/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Program = require('./program'); 3 | 4 | let program = new Program(input); 5 | console.log(program.run()); 6 | -------------------------------------------------------------------------------- /2017/23/part-two.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2017/23/part-two.js -------------------------------------------------------------------------------- /2017/25/turing-lang/.jshintrc: -------------------------------------------------------------------------------- 1 | { 2 | "esnext": true, 3 | "multistr": true 4 | } -------------------------------------------------------------------------------- /2017/25/turing-lang/.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | dist -------------------------------------------------------------------------------- /2017/25/turing-lang/.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: stable 3 | before_install: npm install -g grunt-cli -------------------------------------------------------------------------------- /2017/25/turing-lang/test/test.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2017/25/turing-lang/test/test.js -------------------------------------------------------------------------------- /2017/3/input.js: -------------------------------------------------------------------------------- 1 | module.exports = 361527; 2 | -------------------------------------------------------------------------------- /2017/4/part-one.js: -------------------------------------------------------------------------------- 1 | const { uniq } = require('lodash'); 2 | const input = require('./input'); 3 | 4 | const isValid = phrase_array => { 5 | return uniq(phrase_array).length === phrase_array.length ? 1 : 0; 6 | }; 7 | 8 | console.log(input.map(p => isValid(p)).reduce((a, b) => a + b, 0)); 9 | -------------------------------------------------------------------------------- /2017/5/part-one.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const CPU = require('./cpu'); 3 | 4 | let cpu = new CPU(input); 5 | 6 | console.log(cpu.execute()); 7 | -------------------------------------------------------------------------------- /2017/5/part-two.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const CPU = require('./cpu'); 3 | 4 | let cpu = new CPU(input); 5 | 6 | console.log(cpu.execute(true)); 7 | -------------------------------------------------------------------------------- /2017/6/input.js: -------------------------------------------------------------------------------- 1 | const MEMORY = [14, 0, 15, 12, 11, 11, 3, 5, 1, 6, 8, 4, 9, 1, 8, 4]; 2 | 3 | module.exports = { 4 | sampleInput: [0, 2, 7, 0], 5 | input: MEMORY, 6 | }; 7 | -------------------------------------------------------------------------------- /2017/6/input.txt: -------------------------------------------------------------------------------- 1 | 14 0 15 12 11 11 3 5 1 6 8 4 9 1 8 4 2 | -------------------------------------------------------------------------------- /2017/6/part-one.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const Chip = require('./chip'); 3 | 4 | let chip = new Chip(input); 5 | 6 | console.log(chip.runForOneCycle()); 7 | -------------------------------------------------------------------------------- /2017/6/part-two.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const Chip = require('./chip'); 3 | 4 | let chip = new Chip(input); 5 | 6 | chip.runForOneCycle(); 7 | console.log(chip.runForOneCycle()); 8 | -------------------------------------------------------------------------------- /2017/7/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Tree = require('./tree'); 3 | 4 | let tree = new Tree(input); 5 | 6 | console.log(tree.head.id); 7 | -------------------------------------------------------------------------------- /2017/7/part-two.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const Tree = require('./tree'); 3 | 4 | // let tree = new Tree(sampleInput); 5 | let tree = new Tree(input); 6 | 7 | console.log(tree.findOneUnbalancedNodeNewTargetTotalWeight()); 8 | -------------------------------------------------------------------------------- /2017/8/part-one.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const Program = require('./program'); 3 | 4 | let program = new Program(input); 5 | 6 | console.log(program.executeAndGetLargestRegister()); 7 | -------------------------------------------------------------------------------- /2017/8/part-two.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const Program = require('./program'); 3 | 4 | let program = new Program(input); 5 | 6 | console.log(program.executeAndGetLargestRegisterAtAnyTime()); 7 | -------------------------------------------------------------------------------- /2018/11/input.js: -------------------------------------------------------------------------------- 1 | 2 | /** 3 | * My puzzle input, 4 | * Aka, the "grid serial number:" 5 | */ 6 | module.exports = 3613; 7 | -------------------------------------------------------------------------------- /2018/12/part-one.js: -------------------------------------------------------------------------------- 1 | const Garden = require('./garden'); 2 | const input = require('./input'); 3 | 4 | const { initialState, spreadRules } = input; 5 | 6 | let garden = new Garden(initialState, spreadRules); 7 | 8 | const DAYS_TO_SIMULATE = 20; 9 | garden.tick(DAYS_TO_SIMULATE); 10 | 11 | console.log(garden.getSumOfAlivePlantsIds()); 12 | -------------------------------------------------------------------------------- /2018/12/visualizations/08c199df2ce7dfc50157f2b954d08b1b-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/08c199df2ce7dfc50157f2b954d08b1b-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/0987fb17ed33efe7368bcd599b508448-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/0987fb17ed33efe7368bcd599b508448-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/0b1d4c90b70d0717dfd97e14b1f1acb3-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/0b1d4c90b70d0717dfd97e14b1f1acb3-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/0e4e79268f3848809ef84ebeefa115b6-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/0e4e79268f3848809ef84ebeefa115b6-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/0e88a0a3c0ba18a2f108888d306ed4c8-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/0e88a0a3c0ba18a2f108888d306ed4c8-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/0f41fba4d9400cf369a75bcc20dec182-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/0f41fba4d9400cf369a75bcc20dec182-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/0f5bf0340c8a6536619e3637f98dd785-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/0f5bf0340c8a6536619e3637f98dd785-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/1031a121ffdc592039f506de68d83227-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/1031a121ffdc592039f506de68d83227-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/1200d80839e0163ee877d0ecdb5f59a9-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/1200d80839e0163ee877d0ecdb5f59a9-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/1247f96d0ea75f1819f67aef9ccee81a-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/1247f96d0ea75f1819f67aef9ccee81a-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/159265f053465e10f26deebedc032842-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/159265f053465e10f26deebedc032842-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/1619c4bf63685bbdae0ddc2a6c3eb806-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/1619c4bf63685bbdae0ddc2a6c3eb806-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/188ea14089ab0c067969778405ffa0a5-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/188ea14089ab0c067969778405ffa0a5-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/1acd98771b4610348e4f7a86baeaeb07-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/1acd98771b4610348e4f7a86baeaeb07-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/1cb3fc75346a0b3e335b7763f3aefee7-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/1cb3fc75346a0b3e335b7763f3aefee7-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/1e6b1dfcc76bb0aeb861438e5a65b1b3-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/1e6b1dfcc76bb0aeb861438e5a65b1b3-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/1f37f4a34698dfae037df9f7e31fe672-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/1f37f4a34698dfae037df9f7e31fe672-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/22c24449bbca4dfd3e87ddd9dff84bae-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/22c24449bbca4dfd3e87ddd9dff84bae-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/26a06aae89eea387448f0fea8dc8f10b-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/26a06aae89eea387448f0fea8dc8f10b-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/26f37d5e02178f61b9f407720a52437c-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/26f37d5e02178f61b9f407720a52437c-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/296230f490c5776869f1eb78f4730d25-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/296230f490c5776869f1eb78f4730d25-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/298b2154937611bf1d450760c132b5cc-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/298b2154937611bf1d450760c132b5cc-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/298fbf7356f1231208d06f4f2ad8798d-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/298fbf7356f1231208d06f4f2ad8798d-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/2b71cbb6db4e8aad0383e6d0be926257-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/2b71cbb6db4e8aad0383e6d0be926257-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/2baf81912600c6d1826ff936caeb8285-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/2baf81912600c6d1826ff936caeb8285-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/300f5bd07082222ac363f46fd9013f0f-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/300f5bd07082222ac363f46fd9013f0f-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/3182e1c51629388a05ed729f0ee09a13-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/3182e1c51629388a05ed729f0ee09a13-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/3241f889220d07a2b00281d62dc49ba0-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/3241f889220d07a2b00281d62dc49ba0-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/32459c3ac26b88f2288d99b772ac7501-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/32459c3ac26b88f2288d99b772ac7501-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/33d7ff5b39cac38ebda51273490991c6-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/33d7ff5b39cac38ebda51273490991c6-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/342738657306f13a799f60178d51efab-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/342738657306f13a799f60178d51efab-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/3904f949686c67a747130f97ab02c439-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/3904f949686c67a747130f97ab02c439-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/39621f5efdbc3ab241dc77658e211e89-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/39621f5efdbc3ab241dc77658e211e89-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/3a48e16b262b3ca5c46c74592d8194eb-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/3a48e16b262b3ca5c46c74592d8194eb-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/428410aad1adafd3de4ab5ef1f51d197-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/428410aad1adafd3de4ab5ef1f51d197-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/48f1d26c9a440d410a919d2b4d211a56-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/48f1d26c9a440d410a919d2b4d211a56-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/4d826a23090dcb351fe16bde1ed303ef-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/4d826a23090dcb351fe16bde1ed303ef-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/4e2aa0b663a0905165642640ba7c7b40-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/4e2aa0b663a0905165642640ba7c7b40-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/4fe121248982bf13ddea4c3aa2f3c8e4-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/4fe121248982bf13ddea4c3aa2f3c8e4-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/51e2c92cd2d2c1846a75966a8b5f8fa7-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/51e2c92cd2d2c1846a75966a8b5f8fa7-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/5527f71ff5b590db200a37fdec1f07e9-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/5527f71ff5b590db200a37fdec1f07e9-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/5827a1eb0000e6704981c2772674e8c6-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/5827a1eb0000e6704981c2772674e8c6-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/59d8be44e569a60196f1d057d9f8d537-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/59d8be44e569a60196f1d057d9f8d537-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/5cd203ccd7fd810df1e47f2632cfb8b3-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/5cd203ccd7fd810df1e47f2632cfb8b3-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/61ef5e2c04676960b580911ee0789f0f-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/61ef5e2c04676960b580911ee0789f0f-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/6221c880c4301b98861a5773adc0a5c5-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/6221c880c4301b98861a5773adc0a5c5-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/638f94da7d94af6c925cdd6770c2fbcb-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/638f94da7d94af6c925cdd6770c2fbcb-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/66ab2a9f044eb7b9e93ec32b389cf432-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/66ab2a9f044eb7b9e93ec32b389cf432-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/67ccec6cdae9020e14666374cdfa428c-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/67ccec6cdae9020e14666374cdfa428c-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/68b35f750ef8ef6cfef8e6870d78335f-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/68b35f750ef8ef6cfef8e6870d78335f-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/6a9499b5db6a5544d4a3bd5abe5bab8c-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/6a9499b5db6a5544d4a3bd5abe5bab8c-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/6c98bc90379275ae34c40e6554fde66f-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/6c98bc90379275ae34c40e6554fde66f-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/71b9bda642084ca166eb9e027a0f2567-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/71b9bda642084ca166eb9e027a0f2567-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/71d3441c3d7db2b5d3f6aef1769ae066-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/71d3441c3d7db2b5d3f6aef1769ae066-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/756ec22bf0e3f30808ece37cf204f35f-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/756ec22bf0e3f30808ece37cf204f35f-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/757bdd64864eef12ec8d17e44a20d3af-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/757bdd64864eef12ec8d17e44a20d3af-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/7ca7fc76ef5e434e4131fd40f446264d-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/7ca7fc76ef5e434e4131fd40f446264d-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/7e5b04f790c99757e8e3d7e3cec1dafe-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/7e5b04f790c99757e8e3d7e3cec1dafe-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/82a066394aa1644facad250e7ebbb33e-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/82a066394aa1644facad250e7ebbb33e-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/85cf22aaca8385c39d97faf91609e944-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/85cf22aaca8385c39d97faf91609e944-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/87380e6681281335f6a00a5b91686faa-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/87380e6681281335f6a00a5b91686faa-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/8eaf9ee7afd4420f153c29f3a3c1b2b5-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/8eaf9ee7afd4420f153c29f3a3c1b2b5-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/95ce0e66d87eec23272887bbf09c6352-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/95ce0e66d87eec23272887bbf09c6352-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/95edd6eb65a12964e077444eb4e3a3de-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/95edd6eb65a12964e077444eb4e3a3de-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/960fda478d2e72386b13e2e4d718b81c-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/960fda478d2e72386b13e2e4d718b81c-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/9b5f7398c7fff3daff9d10447bce2dc8-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/9b5f7398c7fff3daff9d10447bce2dc8-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/9cd43c7d6c1c9c775343d63a055897a3-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/9cd43c7d6c1c9c775343d63a055897a3-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/a709be5cb63bc90aa6c3f7a73092b2e3-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/a709be5cb63bc90aa6c3f7a73092b2e3-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/a848b3fa8eff279d325502561e8c54a0-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/a848b3fa8eff279d325502561e8c54a0-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/a968bfb65e9cd4c1ae9a5a4415b60506-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/a968bfb65e9cd4c1ae9a5a4415b60506-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/aadd820150b2e57c9e86fa24f16e8024-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/aadd820150b2e57c9e86fa24f16e8024-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/b43b8e8744cfdf9e565c0965a732601a-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/b43b8e8744cfdf9e565c0965a732601a-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/b538e5202c8147f8ceb4ae4bbe520b83-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/b538e5202c8147f8ceb4ae4bbe520b83-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/b5f19f60981791418791852867220962-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/b5f19f60981791418791852867220962-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/b9b4d59dd5fe02110b2b9d71fe452a11-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/b9b4d59dd5fe02110b2b9d71fe452a11-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/bec04f9fa24797601cd715f36cea25b5-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/bec04f9fa24797601cd715f36cea25b5-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/bf8bef7c2efbdffecd64dde02524fabc-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/bf8bef7c2efbdffecd64dde02524fabc-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/bfd2b0fd8b03b6ce899d9933f754fd4e-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/bfd2b0fd8b03b6ce899d9933f754fd4e-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/c12387b29b5c6c775a2a5740182b2a97-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/c12387b29b5c6c775a2a5740182b2a97-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/c1abac76dddbcd559c39a34917ea6ac0-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/c1abac76dddbcd559c39a34917ea6ac0-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/c40582ed24151a2cedc5d02211acd660-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/c40582ed24151a2cedc5d02211acd660-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/c74692d736ad2906144579554e9f8a4f-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/c74692d736ad2906144579554e9f8a4f-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/c78e89a2018480fa83dbb6c976dda764-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/c78e89a2018480fa83dbb6c976dda764-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/cef35433ba617c7315f1cba878f39b51-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/cef35433ba617c7315f1cba878f39b51-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/d1658773edd50dd029f534b71538b115-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/d1658773edd50dd029f534b71538b115-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/d2f910d60bcd407b55db38824a31cf72-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/d2f910d60bcd407b55db38824a31cf72-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/d3dd85c2f196c264c3a0ef2392ded9c2-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/d3dd85c2f196c264c3a0ef2392ded9c2-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/d92462ff6acc7f56c2af9ea23020720d-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/d92462ff6acc7f56c2af9ea23020720d-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/d93d2dd9c23817883ea75591ce44aa0d-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/d93d2dd9c23817883ea75591ce44aa0d-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/dd8e235a21be99f64d16f560172254ee-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/dd8e235a21be99f64d16f560172254ee-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/dffdf4d729371ab6786e2e61e02d73e3-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/dffdf4d729371ab6786e2e61e02d73e3-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/e070d66397370b94d32fed1166c5ce1f-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/e070d66397370b94d32fed1166c5ce1f-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/e249e4ece14d5d044d835e22ccbc0d8d-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/e249e4ece14d5d044d835e22ccbc0d8d-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/e2e770c248a9e0f279db20247101569c-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/e2e770c248a9e0f279db20247101569c-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/e2f0f7f185aacf05b0cc1aad4ae72f62-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/e2f0f7f185aacf05b0cc1aad4ae72f62-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/e82c02ee4b2ec5d4aea190ba6575ce18-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/e82c02ee4b2ec5d4aea190ba6575ce18-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/e866ecd8fda68718cdc6617cbed3c9f1-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/e866ecd8fda68718cdc6617cbed3c9f1-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/e976e63d5b9a824623337557f258555c-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/e976e63d5b9a824623337557f258555c-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/eb13879aaf5054aca01210018c5eb237-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/eb13879aaf5054aca01210018c5eb237-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/ebc108fdd968235a44a5c9257ff3446d-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/ebc108fdd968235a44a5c9257ff3446d-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/ed62d6617c68231297c428b3b2025cc2-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/ed62d6617c68231297c428b3b2025cc2-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/f234952959deb0709759afa78e64c7fe-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/f234952959deb0709759afa78e64c7fe-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/f414b676e635647e4aec93f8df1b1ec8-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/f414b676e635647e4aec93f8df1b1ec8-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/f52bc8e4b963243dcd2703510f47c4a9-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/f52bc8e4b963243dcd2703510f47c4a9-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/f5489062b2b7d23e5ee7d5b706e6f4a5-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/f5489062b2b7d23e5ee7d5b706e6f4a5-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/f79be0e8a3740241f2aa45392201c722-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/f79be0e8a3740241f2aa45392201c722-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/f94f7ffba968760fed26effa2da8f386-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/f94f7ffba968760fed26effa2da8f386-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/fa2aec63a327d0937d0921e59283ae62-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/fa2aec63a327d0937d0921e59283ae62-visualized.png -------------------------------------------------------------------------------- /2018/12/visualizations/fbd1c81ec24142f76a00f3c01c1cbef9-visualized.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/12/visualizations/fbd1c81ec24142f76a00f3c01c1cbef9-visualized.png -------------------------------------------------------------------------------- /2018/13/sample-input.txt: -------------------------------------------------------------------------------- 1 | /->-\ 2 | | | /----\ 3 | | /-+--+-\ | 4 | | | | | v | 5 | \-+-/ \-+--/ 6 | \------/ -------------------------------------------------------------------------------- /2018/14/input.js: -------------------------------------------------------------------------------- 1 | module.exports = 580741; 2 | -------------------------------------------------------------------------------- /2018/17/animation.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/17/animation.mp4 -------------------------------------------------------------------------------- /2018/17/filled-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/17/filled-grid.png -------------------------------------------------------------------------------- /2018/17/grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/17/grid.png -------------------------------------------------------------------------------- /2018/17/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | // Parsing is done in `Grid` class 5 | const input = fs 6 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 7 | .toString() 8 | .trim(); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2018/17/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input.js'); 2 | const { Grid, Ground } = require('./ground.js'); 3 | 4 | const grid = new Grid(input); 5 | const ground = new Ground({ grid }); 6 | ground.fill().then((sums) => { 7 | console.log(sums[Ground.FLOWING] + sums[Ground.SETTLED]); 8 | }); 9 | -------------------------------------------------------------------------------- /2018/17/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input.js'); 2 | const { Grid, Ground } = require('./ground.js'); 3 | 4 | const grid = new Grid(input); 5 | const ground = new Ground({ grid }); 6 | ground.fill().then((sums) => { 7 | console.log(sums[Ground.SETTLED]); 8 | }); 9 | -------------------------------------------------------------------------------- /2018/18/part-one.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | const Forest = require('./forest'); 3 | 4 | let forest = new Forest(input); 5 | 6 | for (let i = 0; i < 10; i++) { 7 | forest.tick(); 8 | } 9 | 10 | console.log(forest.getTotalResources()); 11 | -------------------------------------------------------------------------------- /2018/19/sample-input.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | program: [ 3 | ['#ip', 0], 4 | ['seti', 5, 0, 1], 5 | ['seti', 6, 0, 2], 6 | ['addi', 0, 1, 0], 7 | ['addr', 1, 2, 3], 8 | ['setr', 1, 0, 0], 9 | ['seti', 8, 0, 4], 10 | ['seti', 9, 0, 5], 11 | ], 12 | }; 13 | -------------------------------------------------------------------------------- /2018/20/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim(); 8 | 9 | module.exports = { 10 | input, 11 | }; 12 | -------------------------------------------------------------------------------- /2018/20/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input.js'); 2 | const { RegexMap } = require('./regex-map.js'); 3 | 4 | let map = new RegexMap(); 5 | map.build(input); 6 | const paths = map.buildFrontierFrom(0, 0); 7 | const longPaths = [...paths.entries()].filter((path) => path[1].cost >= 1000); 8 | console.log(longPaths.length); 9 | -------------------------------------------------------------------------------- /2018/21/sample-input.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | program: [ 3 | ['#ip', 0], 4 | ['seti', 5, 0, 1], 5 | ['seti', 6, 0, 2], 6 | ['addi', 0, 1, 0], 7 | ['addr', 1, 2, 3], 8 | ['setr', 1, 0, 0], 9 | ['seti', 8, 0, 4], 10 | ['seti', 9, 0, 5], 11 | ], 12 | }; 13 | -------------------------------------------------------------------------------- /2018/22/input.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | depth: 5616, 3 | // x, y 4 | target: [10, 785], 5 | }; 6 | -------------------------------------------------------------------------------- /2018/22/input.txt: -------------------------------------------------------------------------------- 1 | depth: 5616 2 | target: 10,785 3 | -------------------------------------------------------------------------------- /2018/22/part-one.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | const Cave = require('./cave'); 3 | 4 | let cave = new Cave(5616, [10, 785]); 5 | // let cave = new Cave(510, [10, 10]); 6 | 7 | console.log(cave.getSumOfTypesFromOriginToTarget()) 8 | -------------------------------------------------------------------------------- /2018/22/part-two.js: -------------------------------------------------------------------------------- 1 | const input = require('./input'); 2 | const Cave = require('./cave'); 3 | 4 | let cave = new Cave(5616, [10, 785]); 5 | // let cave = new Cave(510, [10, 10]); 6 | 7 | // console.log(cave.printGrid(16, 16)) 8 | 9 | console.log(cave.getShortestPathLengthToTarget()) 10 | -------------------------------------------------------------------------------- /2018/6/part-one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2018/6/part-one.png -------------------------------------------------------------------------------- /2018/8/sample-input.txt: -------------------------------------------------------------------------------- 1 | 2 3 0 3 10 11 12 1 1 0 1 99 2 1 1 2 -------------------------------------------------------------------------------- /2018/9/input.txt: -------------------------------------------------------------------------------- 1 | 459 players; last marble is worth 72103 points 2 | -------------------------------------------------------------------------------- /2019/1/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/1/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | 3 | // To find the fuel required for a module, take its mass, divide by three, round down, and subtract 2. 4 | const fuel = input.map(mass => Math.floor(mass / 3) - 2); 5 | const total_fuel = fuel.reduce((a, b) => a + b, 0); 6 | console.log(total_fuel); 7 | -------------------------------------------------------------------------------- /2019/10/sample-input-1.txt: -------------------------------------------------------------------------------- 1 | .#..# 2 | ..... 3 | ##### 4 | ....# 5 | ...## -------------------------------------------------------------------------------- /2019/10/sample-input-2.txt: -------------------------------------------------------------------------------- 1 | ......#.#. 2 | #..#.#.... 3 | ..#######. 4 | .#.#.###.. 5 | .#..#..... 6 | ..#....#.# 7 | #..#....#. 8 | .##.#..### 9 | ##...#..#. 10 | .#....#### -------------------------------------------------------------------------------- /2019/10/sample-input-3.txt: -------------------------------------------------------------------------------- 1 | #.#...#.#. 2 | .###....#. 3 | .#....#... 4 | ##.#.#.#.# 5 | ....#.#.#. 6 | .##..###.# 7 | ..#...##.. 8 | ..##....## 9 | ......#... 10 | .####.###. -------------------------------------------------------------------------------- /2019/10/sample-input-4.txt: -------------------------------------------------------------------------------- 1 | .#..#..### 2 | ####.###.# 3 | ....###.#. 4 | ..###.##.# 5 | ##.##.#.#. 6 | ....###..# 7 | ..#.#..#.# 8 | #..#.#.### 9 | .##...##.# 10 | .....#.#.. -------------------------------------------------------------------------------- /2019/10/sample-input-part-2.txt: -------------------------------------------------------------------------------- 1 | .#....#####...#.. 2 | ##...##.#####..## 3 | ##...#...#.#####. 4 | ..#.....#...###.. 5 | ..#.#.....#....## -------------------------------------------------------------------------------- /2019/11/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/11/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Ship } = require('./intcode-computer'); 3 | 4 | let ship = new Ship(input); 5 | let output = ship.run(); 6 | 7 | console.log(output); -------------------------------------------------------------------------------- /2019/11/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Ship } = require('./intcode-computer'); 3 | 4 | let ship = new Ship(input, 1); 5 | ship.run(); 6 | ship.printShip(); 7 | -------------------------------------------------------------------------------- /2019/12/input.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /2019/12/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Moons = require('./moons'); 3 | 4 | let system = new Moons(input); 5 | console.log(system.orbit()); 6 | -------------------------------------------------------------------------------- /2019/12/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Moons = require('./moons'); 3 | 4 | let system = new Moons(input); 5 | 6 | console.log(system.orbitUntilRepeat()); 7 | -------------------------------------------------------------------------------- /2019/13/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/13/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Arcade, TYPES } = require('./intcode-computer'); 3 | 4 | let arcade = new Arcade(input); 5 | let grid = arcade.runAndGetGrid(); 6 | let output = grid.getNumberOfTilesOfType(TYPES.BLOCK); 7 | 8 | console.log(output); -------------------------------------------------------------------------------- /2019/13/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Arcade } = require('./intcode-computer'); 3 | 4 | (async () => { 5 | input[0] = 2; 6 | let arcade = new Arcade(input, { print_game: true, pause_on_output: true, replenish_input: 0 }); 7 | await arcade.freePlay(); 8 | })(); 9 | -------------------------------------------------------------------------------- /2019/14/sample-input-1.txt: -------------------------------------------------------------------------------- 1 | 10 ORE => 10 A 2 | 1 ORE => 1 B 3 | 7 A, 1 B => 1 C 4 | 7 A, 1 C => 1 D 5 | 7 A, 1 D => 1 E 6 | 7 A, 1 E => 1 FUEL -------------------------------------------------------------------------------- /2019/14/sample-input-2.txt: -------------------------------------------------------------------------------- 1 | 9 ORE => 2 A 2 | 8 ORE => 3 B 3 | 7 ORE => 5 C 4 | 3 A, 4 B => 1 AB 5 | 5 B, 7 C => 1 BC 6 | 4 C, 1 A => 1 CA 7 | 2 AB, 3 BC, 4 CA => 1 FUEL -------------------------------------------------------------------------------- /2019/14/sample-input-3.txt: -------------------------------------------------------------------------------- 1 | 157 ORE => 5 NZVS 2 | 165 ORE => 6 DCFZ 3 | 44 XJWVT, 5 KHKGT, 1 QDVJ, 29 NZVS, 9 GPVTF, 48 HKGWZ => 1 FUEL 4 | 12 HKGWZ, 1 GPVTF, 8 PSHF => 9 QDVJ 5 | 179 ORE => 7 PSHF 6 | 177 ORE => 5 HKGWZ 7 | 7 DCFZ, 7 PSHF => 2 XJWVT 8 | 165 ORE => 2 GPVTF 9 | 3 DCFZ, 7 NZVS, 5 HKGWZ, 10 PSHF => 8 KHKGT -------------------------------------------------------------------------------- /2019/14/sample-input-6.txt: -------------------------------------------------------------------------------- 1 | 10 ORE => 10 A 2 | 1 A => 1 B 3 | 1 B => 1 C 4 | 1 C => 1 D 5 | 4 A, 2 B, 2 C, 1 D => 1 FUEL -------------------------------------------------------------------------------- /2019/19/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map(v => parseInt(v, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/19/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { TractorBeam } = require('./tractor-beam'); 3 | 4 | let tractor_beam = new TractorBeam(input); 5 | let answer = tractor_beam.partOne(); 6 | console.log(tractor_beam.grid.toString()); 7 | console.log(answer); 8 | -------------------------------------------------------------------------------- /2019/19/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { TractorBeam } = require('./tractor-beam'); 3 | 4 | let tractor_beam = new TractorBeam(input); 5 | console.log(tractor_beam.partTwo()); 6 | // console.log(tractor_beam.partTwoOptimized()); 7 | -------------------------------------------------------------------------------- /2019/2/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/2/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require("./input"); 2 | const Computer = require("./computer"); 3 | 4 | const computer = new Computer(input); 5 | 6 | console.log(computer.partOne()); 7 | -------------------------------------------------------------------------------- /2019/2/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require("./input"); 2 | const Computer = require("./computer"); 3 | 4 | const computer = new Computer(input); 5 | 6 | console.log(computer.partTwo()); 7 | -------------------------------------------------------------------------------- /2019/23/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map(v => parseInt(v, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/23/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Network } = require('./network'); 3 | 4 | let network = new Network(input); 5 | console.log(network.partOne()); 6 | -------------------------------------------------------------------------------- /2019/23/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Network } = require('./network'); 3 | 4 | let network = new Network(input); 5 | console.log(network.partTwo()); 6 | -------------------------------------------------------------------------------- /2019/4/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('-') 9 | .map((v) => parseInt(v, 10)); 10 | 11 | // Input is a range, inclusive 12 | module.exports = { 13 | input, 14 | }; 15 | -------------------------------------------------------------------------------- /2019/4/input.txt: -------------------------------------------------------------------------------- 1 | 138241-674034 -------------------------------------------------------------------------------- /2019/5/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/5/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Computer = require('./computer'); 3 | 4 | let computer = new Computer(input); 5 | computer.run(); -------------------------------------------------------------------------------- /2019/5/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const Computer = require('./computer'); 3 | 4 | let computer = new Computer(input, 5); 5 | computer.run(); -------------------------------------------------------------------------------- /2019/6/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((orbit) => orbit.split(')')); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/6/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const OrbitMap = require('./orbit-map'); 3 | 4 | let orbit_map = new OrbitMap(input); 5 | console.log(orbit_map.getTotalOrbits()); 6 | -------------------------------------------------------------------------------- /2019/6/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const OrbitMap = require('./orbit-map'); 3 | 4 | let orbit_map = new OrbitMap(input); 5 | console.log(orbit_map.getTransfersBetween('YOU', 'SAN')); 6 | -------------------------------------------------------------------------------- /2019/7/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/8/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('') 9 | .map((v) => parseInt(v, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/9/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2019/9/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Computer } = require('./intcode-computer'); 3 | 4 | let computer = new Computer(input, [1]); 5 | let output = computer.run(); 6 | 7 | console.log(output); -------------------------------------------------------------------------------- /2019/9/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Computer } = require('./intcode-computer'); 3 | 4 | let computer = new Computer(input, [2]); 5 | let output = computer.run(); 6 | 7 | console.log(output); 8 | -------------------------------------------------------------------------------- /2020/1/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2020/1/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const G = require('generatorics'); 3 | 4 | for (let [a, b] of G.combination(input, 2)) { 5 | if (a + b === 2020) { 6 | console.log({ a, b }); 7 | console.log('a * b = ', a * b); 8 | return; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /2020/1/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const G = require('generatorics'); 3 | 4 | for (let [a, b, c] of G.combination(input, 3)) { 5 | if (a + b + c === 2020) { 6 | console.log({ a, b, c }); 7 | console.log('a * b * c = ', a * b * c); 8 | return; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /2020/10/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((v) => { 10 | return parseInt(v, 10); 11 | }); 12 | 13 | module.exports = { 14 | input, 15 | }; 16 | -------------------------------------------------------------------------------- /2020/11/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map(row => row.split('')); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2020/11/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Grid } = require('./grid'); 3 | 4 | let layout = new Grid(input); 5 | console.log(layout.run({ part: 1 })); 6 | -------------------------------------------------------------------------------- /2020/11/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Grid } = require('./grid'); 3 | 4 | let layout = new Grid(input); 5 | console.log(layout.run({ part: 2 })); 6 | -------------------------------------------------------------------------------- /2020/12/part-one.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const { Map } = require('./map'); 3 | 4 | let map = new Map({ directions: input }); 5 | map.run(); 6 | let distance = map.getDistanceFromCurrentLocationTo(0, 0); 7 | console.log(distance); 8 | -------------------------------------------------------------------------------- /2020/12/part-two.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const { Map } = require('./map'); 3 | 4 | let map = new Map({ directions: input, useWaypoint: true }); 5 | map.run(); 6 | let distance = map.getDistanceFromCurrentLocationTo(0, 0); 7 | console.log(distance); 8 | -------------------------------------------------------------------------------- /2020/13/input.txt: -------------------------------------------------------------------------------- 1 | 1000067 2 | 17,x,x,x,x,x,x,x,x,x,x,37,x,x,x,x,x,439,x,29,x,x,x,x,x,x,x,x,x,x,13,x,x,x,x,x,x,x,x,x,23,x,x,x,x,x,x,x,787,x,x,x,x,x,x,x,x,x,41,x,x,x,x,x,x,x,x,19 3 | -------------------------------------------------------------------------------- /2020/13/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { findWhenBusesAlign } = require('./bus'); 3 | const { bus_ids } = input; 4 | 5 | 6 | console.log(findWhenBusesAlign(bus_ids)); 7 | -------------------------------------------------------------------------------- /2020/15/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map((v) => { 10 | return parseInt(v, 10); 11 | }); 12 | 13 | module.exports = { 14 | input, 15 | }; 16 | -------------------------------------------------------------------------------- /2020/15/input.txt: -------------------------------------------------------------------------------- 1 | 0,6,1,7,2,19,20 -------------------------------------------------------------------------------- /2020/15/part-one.js: -------------------------------------------------------------------------------- 1 | const { say } = require('./say-game'); 2 | 3 | console.log(say(2020)); 4 | -------------------------------------------------------------------------------- /2020/15/part-two.js: -------------------------------------------------------------------------------- 1 | const { say } = require('./say-game'); 2 | 3 | console.log(say(30000000)); 4 | 5 | -------------------------------------------------------------------------------- /2020/16/part-one.js: -------------------------------------------------------------------------------- 1 | const { rules, your_ticket, nearby_tickets } = require('./input'); 2 | const { getInvalidValues } = require('./ticket'); 3 | 4 | let invalid_values_sum = getInvalidValues(rules, nearby_tickets).reduce((a, b) => a + b, 0); 5 | console.log(invalid_values_sum); 6 | -------------------------------------------------------------------------------- /2020/17/input.txt: -------------------------------------------------------------------------------- 1 | ...#...# 2 | #######. 3 | ....###. 4 | .#..#... 5 | #.#..... 6 | .##..... 7 | #.####.. 8 | #....##. 9 | -------------------------------------------------------------------------------- /2020/18/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2020/18/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { calculate, ADD, MULTIPLY } = require('./calc'); 3 | 4 | const input_totals = input.map((v) => calculate(v)); 5 | const sum = input_totals.reduce((a, b) => a + b, 0); 6 | console.log(sum); 7 | -------------------------------------------------------------------------------- /2020/18/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { calculate, ADD, MULTIPLY } = require('./calc'); 3 | 4 | const input_totals = input.map((v) => calculate(v, { [ADD]: 1, [MULTIPLY]: 2 })); 5 | const sum = input_totals.reduce((a, b) => a + b, 0); 6 | console.log(sum); 7 | -------------------------------------------------------------------------------- /2020/19/part-one.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const { getRegexForId } = require('./messages'); 3 | 4 | let regex = getRegexForId(0, input.rules); 5 | let total_valid_messages = input.codes 6 | .map((c) => (regex.test(c) ? 1 : 0)) 7 | .reduce((a, b) => a + b, 0); 8 | 9 | console.log(total_valid_messages); 10 | -------------------------------------------------------------------------------- /2020/21/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { AllFoods } = require('./allergen'); 3 | 4 | let all_foods = new AllFoods(input); 5 | all_foods.assignKnownAllergens(); 6 | console.log(all_foods.countUnassignedIngredients()); 7 | -------------------------------------------------------------------------------- /2020/21/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { AllFoods } = require('./allergen'); 3 | 4 | let all_foods = new AllFoods(input); 5 | all_foods.assignKnownAllergens(); 6 | console.log(all_foods.getAlergenicIngredientsByAllergenName()) -------------------------------------------------------------------------------- /2020/22/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { play } = require('./game'); 3 | console.log(play(...input)); 4 | -------------------------------------------------------------------------------- /2020/22/part-two.js: -------------------------------------------------------------------------------- 1 | const { input, sampleInput } = require('./input'); 2 | const { recursivePlay } = require('./game'); 3 | console.log(recursivePlay(...input)); 4 | -------------------------------------------------------------------------------- /2020/23/input.txt: -------------------------------------------------------------------------------- 1 | 364289715 2 | -------------------------------------------------------------------------------- /2020/24/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { createGrid } = require('./hex'); 3 | 4 | const GRID = createGrid(input); 5 | 6 | console.log(Object.values(GRID).reduce((a, b) => a + b, 0)); 7 | -------------------------------------------------------------------------------- /2020/25/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((v) => parseInt(v, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2020/25/input.txt: -------------------------------------------------------------------------------- 1 | 14082811 2 | 5249543 3 | -------------------------------------------------------------------------------- /2020/3/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .split('\n') 8 | .map((row) => row.split('')); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2020/4/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { includesAllRequiredFields } = require('./passport'); 3 | 4 | let valid_passports = input 5 | .map((passport) => (includesAllRequiredFields(passport) ? 1 : 0)) 6 | .reduce((a, b) => a + b, 0); 7 | 8 | console.log(valid_passports); 9 | -------------------------------------------------------------------------------- /2020/5/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2020/6/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n\n'); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2020/8/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2020/8/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Computer } = require('./computer'); 3 | 4 | let c = new Computer(input); 5 | console.log(c.runUntil2nd()); 6 | -------------------------------------------------------------------------------- /2020/8/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Computer } = require('./computer'); 3 | 4 | 5 | let c = new Computer(input) 6 | console.log( c.tryChanges()); 7 | -------------------------------------------------------------------------------- /2020/9/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((v) => { 10 | return parseInt(v, 10); 11 | }); 12 | 13 | module.exports = { 14 | input, 15 | }; 16 | -------------------------------------------------------------------------------- /2020/9/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { partOne } = require('./encoding'); 3 | 4 | console.log(partOne(input)); 5 | -------------------------------------------------------------------------------- /2020/9/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { partOne, partTwo } = require('./encoding'); 3 | 4 | const part_one_answer = partOne(input); 5 | console.log(partTwo(input, part_one_answer)); 6 | -------------------------------------------------------------------------------- /2021/1/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2021/1/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | 3 | let count = 0; 4 | for (let i = 0; i < input.length - 1; i++) { 5 | let current = input[i]; 6 | let next = input[i + 1]; 7 | 8 | if (next > current) { 9 | count++; 10 | } 11 | } 12 | 13 | console.log(count); 14 | -------------------------------------------------------------------------------- /2021/10/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((line) => line.split('')); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2021/11/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim(); 8 | 9 | module.exports = { 10 | input, 11 | }; 12 | -------------------------------------------------------------------------------- /2021/11/input.txt: -------------------------------------------------------------------------------- 1 | 8826876714 2 | 3127787238 3 | 8182852861 4 | 4655371483 5 | 3864551365 6 | 1878253581 7 | 8317422437 8 | 1517254266 9 | 2621124761 10 | 3473331514 11 | -------------------------------------------------------------------------------- /2021/12/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((line) => line.split('-')); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2021/12/input.txt: -------------------------------------------------------------------------------- 1 | yb-pi 2 | jg-ej 3 | yb-KN 4 | LD-start 5 | end-UF 6 | UF-yb 7 | yb-xd 8 | qx-yb 9 | xd-end 10 | jg-KN 11 | start-qx 12 | start-ej 13 | qx-LD 14 | jg-LD 15 | xd-LD 16 | ej-qx 17 | end-KN 18 | DM-xd 19 | jg-yb 20 | ej-LD 21 | qx-UF 22 | UF-jg 23 | qx-jg 24 | xd-UF 25 | -------------------------------------------------------------------------------- /2021/12/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Graph } = require('./graph'); 3 | 4 | let graph = new Graph(input); 5 | let paths = graph.getPaths('start', 'end'); 6 | 7 | console.log(paths.length); 8 | -------------------------------------------------------------------------------- /2021/12/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { Graph } = require('./graph'); 3 | 4 | console.log('Calculating, this will take about 10 seconds...'); 5 | let graph = new Graph(input); 6 | let paths = graph.getPaths('start', 'end', { visit_single_small_cave_twice: true }); 7 | 8 | console.log(paths.length); 9 | -------------------------------------------------------------------------------- /2021/13/sample-input.txt: -------------------------------------------------------------------------------- 1 | 6,10 2 | 0,14 3 | 9,10 4 | 0,3 5 | 10,4 6 | 4,11 7 | 6,0 8 | 6,12 9 | 4,1 10 | 0,13 11 | 10,12 12 | 3,4 13 | 3,0 14 | 8,4 15 | 1,10 16 | 2,14 17 | 8,10 18 | 9,0 19 | 20 | fold along y=7 21 | fold along x=5 -------------------------------------------------------------------------------- /2021/15/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs.readFileSync(path.join(__dirname, 'input.txt'), 'utf8').toString().trim(); 5 | 6 | module.exports = { 7 | input, 8 | }; 9 | -------------------------------------------------------------------------------- /2021/16/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "This inner package.json is to allow ESM `import` statement within the JS files for this puzzle without renaming the file to '.mjs' or whatever.", 3 | "type": "module" 4 | } 5 | -------------------------------------------------------------------------------- /2021/16/part-two.js: -------------------------------------------------------------------------------- 1 | import { input } from './input.js'; 2 | 3 | import { parseHexAs4Bits, parseOutPackets } from './bits.js'; 4 | 5 | const data = parseHexAs4Bits(input); 6 | const packets = parseOutPackets(data.reader()); 7 | 8 | console.log(packets[0].value); 9 | -------------------------------------------------------------------------------- /2021/17/input.txt: -------------------------------------------------------------------------------- 1 | target area: x=56..76, y=-162..-134 2 | -------------------------------------------------------------------------------- /2021/17/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { getValidTrajectories } = require('./launcher'); 3 | 4 | const solutions = getValidTrajectories(input); 5 | const { max_y } = solutions.sort((a, b) => b.max_y - a.max_y)[0]; 6 | 7 | console.log(max_y); 8 | -------------------------------------------------------------------------------- /2021/17/part-two.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | const { getValidTrajectories } = require('./launcher'); 3 | 4 | const solutions = getValidTrajectories(input); 5 | 6 | console.log(solutions.length); 7 | -------------------------------------------------------------------------------- /2021/24/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "description": "This inner package.json is to allow ESM `import` statement within the JS files for this puzzle without renaming the file to '.mjs' or whatever.", 3 | "type": "module" 4 | } 5 | -------------------------------------------------------------------------------- /2021/25/frames/frame_000.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_000.png -------------------------------------------------------------------------------- /2021/25/frames/frame_001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_001.png -------------------------------------------------------------------------------- /2021/25/frames/frame_002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_002.png -------------------------------------------------------------------------------- /2021/25/frames/frame_003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_003.png -------------------------------------------------------------------------------- /2021/25/frames/frame_004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_004.png -------------------------------------------------------------------------------- /2021/25/frames/frame_005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_005.png -------------------------------------------------------------------------------- /2021/25/frames/frame_006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_006.png -------------------------------------------------------------------------------- /2021/25/frames/frame_007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_007.png -------------------------------------------------------------------------------- /2021/25/frames/frame_008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_008.png -------------------------------------------------------------------------------- /2021/25/frames/frame_009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_009.png -------------------------------------------------------------------------------- /2021/25/frames/frame_010.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_010.png -------------------------------------------------------------------------------- /2021/25/frames/frame_011.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_011.png -------------------------------------------------------------------------------- /2021/25/frames/frame_012.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_012.png -------------------------------------------------------------------------------- /2021/25/frames/frame_013.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_013.png -------------------------------------------------------------------------------- /2021/25/frames/frame_014.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_014.png -------------------------------------------------------------------------------- /2021/25/frames/frame_015.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_015.png -------------------------------------------------------------------------------- /2021/25/frames/frame_016.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_016.png -------------------------------------------------------------------------------- /2021/25/frames/frame_017.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_017.png -------------------------------------------------------------------------------- /2021/25/frames/frame_018.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_018.png -------------------------------------------------------------------------------- /2021/25/frames/frame_019.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_019.png -------------------------------------------------------------------------------- /2021/25/frames/frame_020.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_020.png -------------------------------------------------------------------------------- /2021/25/frames/frame_021.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_021.png -------------------------------------------------------------------------------- /2021/25/frames/frame_022.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_022.png -------------------------------------------------------------------------------- /2021/25/frames/frame_023.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_023.png -------------------------------------------------------------------------------- /2021/25/frames/frame_024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_024.png -------------------------------------------------------------------------------- /2021/25/frames/frame_025.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_025.png -------------------------------------------------------------------------------- /2021/25/frames/frame_026.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_026.png -------------------------------------------------------------------------------- /2021/25/frames/frame_027.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_027.png -------------------------------------------------------------------------------- /2021/25/frames/frame_028.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_028.png -------------------------------------------------------------------------------- /2021/25/frames/frame_029.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_029.png -------------------------------------------------------------------------------- /2021/25/frames/frame_030.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_030.png -------------------------------------------------------------------------------- /2021/25/frames/frame_031.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_031.png -------------------------------------------------------------------------------- /2021/25/frames/frame_032.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_032.png -------------------------------------------------------------------------------- /2021/25/frames/frame_033.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_033.png -------------------------------------------------------------------------------- /2021/25/frames/frame_034.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_034.png -------------------------------------------------------------------------------- /2021/25/frames/frame_035.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_035.png -------------------------------------------------------------------------------- /2021/25/frames/frame_036.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_036.png -------------------------------------------------------------------------------- /2021/25/frames/frame_037.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_037.png -------------------------------------------------------------------------------- /2021/25/frames/frame_038.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_038.png -------------------------------------------------------------------------------- /2021/25/frames/frame_039.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_039.png -------------------------------------------------------------------------------- /2021/25/frames/frame_040.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_040.png -------------------------------------------------------------------------------- /2021/25/frames/frame_041.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_041.png -------------------------------------------------------------------------------- /2021/25/frames/frame_042.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_042.png -------------------------------------------------------------------------------- /2021/25/frames/frame_043.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_043.png -------------------------------------------------------------------------------- /2021/25/frames/frame_044.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_044.png -------------------------------------------------------------------------------- /2021/25/frames/frame_045.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_045.png -------------------------------------------------------------------------------- /2021/25/frames/frame_046.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_046.png -------------------------------------------------------------------------------- /2021/25/frames/frame_047.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_047.png -------------------------------------------------------------------------------- /2021/25/frames/frame_048.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_048.png -------------------------------------------------------------------------------- /2021/25/frames/frame_049.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_049.png -------------------------------------------------------------------------------- /2021/25/frames/frame_050.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_050.png -------------------------------------------------------------------------------- /2021/25/frames/frame_051.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_051.png -------------------------------------------------------------------------------- /2021/25/frames/frame_052.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_052.png -------------------------------------------------------------------------------- /2021/25/frames/frame_053.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_053.png -------------------------------------------------------------------------------- /2021/25/frames/frame_054.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_054.png -------------------------------------------------------------------------------- /2021/25/frames/frame_055.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_055.png -------------------------------------------------------------------------------- /2021/25/frames/frame_056.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_056.png -------------------------------------------------------------------------------- /2021/25/frames/frame_057.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_057.png -------------------------------------------------------------------------------- /2021/25/frames/frame_058.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_058.png -------------------------------------------------------------------------------- /2021/25/frames/frame_059.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_059.png -------------------------------------------------------------------------------- /2021/25/frames/frame_060.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_060.png -------------------------------------------------------------------------------- /2021/25/frames/frame_061.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_061.png -------------------------------------------------------------------------------- /2021/25/frames/frame_062.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_062.png -------------------------------------------------------------------------------- /2021/25/frames/frame_063.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_063.png -------------------------------------------------------------------------------- /2021/25/frames/frame_064.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_064.png -------------------------------------------------------------------------------- /2021/25/frames/frame_065.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_065.png -------------------------------------------------------------------------------- /2021/25/frames/frame_066.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_066.png -------------------------------------------------------------------------------- /2021/25/frames/frame_067.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_067.png -------------------------------------------------------------------------------- /2021/25/frames/frame_068.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_068.png -------------------------------------------------------------------------------- /2021/25/frames/frame_069.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_069.png -------------------------------------------------------------------------------- /2021/25/frames/frame_070.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_070.png -------------------------------------------------------------------------------- /2021/25/frames/frame_071.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_071.png -------------------------------------------------------------------------------- /2021/25/frames/frame_072.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_072.png -------------------------------------------------------------------------------- /2021/25/frames/frame_073.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_073.png -------------------------------------------------------------------------------- /2021/25/frames/frame_074.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_074.png -------------------------------------------------------------------------------- /2021/25/frames/frame_075.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_075.png -------------------------------------------------------------------------------- /2021/25/frames/frame_076.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_076.png -------------------------------------------------------------------------------- /2021/25/frames/frame_077.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_077.png -------------------------------------------------------------------------------- /2021/25/frames/frame_078.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_078.png -------------------------------------------------------------------------------- /2021/25/frames/frame_079.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_079.png -------------------------------------------------------------------------------- /2021/25/frames/frame_080.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_080.png -------------------------------------------------------------------------------- /2021/25/frames/frame_081.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_081.png -------------------------------------------------------------------------------- /2021/25/frames/frame_082.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_082.png -------------------------------------------------------------------------------- /2021/25/frames/frame_083.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_083.png -------------------------------------------------------------------------------- /2021/25/frames/frame_084.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_084.png -------------------------------------------------------------------------------- /2021/25/frames/frame_085.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_085.png -------------------------------------------------------------------------------- /2021/25/frames/frame_086.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_086.png -------------------------------------------------------------------------------- /2021/25/frames/frame_087.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_087.png -------------------------------------------------------------------------------- /2021/25/frames/frame_088.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_088.png -------------------------------------------------------------------------------- /2021/25/frames/frame_089.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_089.png -------------------------------------------------------------------------------- /2021/25/frames/frame_090.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_090.png -------------------------------------------------------------------------------- /2021/25/frames/frame_091.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_091.png -------------------------------------------------------------------------------- /2021/25/frames/frame_092.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_092.png -------------------------------------------------------------------------------- /2021/25/frames/frame_093.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_093.png -------------------------------------------------------------------------------- /2021/25/frames/frame_094.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_094.png -------------------------------------------------------------------------------- /2021/25/frames/frame_095.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_095.png -------------------------------------------------------------------------------- /2021/25/frames/frame_096.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_096.png -------------------------------------------------------------------------------- /2021/25/frames/frame_097.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_097.png -------------------------------------------------------------------------------- /2021/25/frames/frame_098.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_098.png -------------------------------------------------------------------------------- /2021/25/frames/frame_099.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_099.png -------------------------------------------------------------------------------- /2021/25/frames/frame_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_100.png -------------------------------------------------------------------------------- /2021/25/frames/frame_101.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_101.png -------------------------------------------------------------------------------- /2021/25/frames/frame_102.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_102.png -------------------------------------------------------------------------------- /2021/25/frames/frame_103.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_103.png -------------------------------------------------------------------------------- /2021/25/frames/frame_104.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_104.png -------------------------------------------------------------------------------- /2021/25/frames/frame_105.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_105.png -------------------------------------------------------------------------------- /2021/25/frames/frame_106.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_106.png -------------------------------------------------------------------------------- /2021/25/frames/frame_107.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_107.png -------------------------------------------------------------------------------- /2021/25/frames/frame_108.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_108.png -------------------------------------------------------------------------------- /2021/25/frames/frame_109.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_109.png -------------------------------------------------------------------------------- /2021/25/frames/frame_110.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_110.png -------------------------------------------------------------------------------- /2021/25/frames/frame_111.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_111.png -------------------------------------------------------------------------------- /2021/25/frames/frame_112.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_112.png -------------------------------------------------------------------------------- /2021/25/frames/frame_113.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_113.png -------------------------------------------------------------------------------- /2021/25/frames/frame_114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_114.png -------------------------------------------------------------------------------- /2021/25/frames/frame_115.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_115.png -------------------------------------------------------------------------------- /2021/25/frames/frame_116.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_116.png -------------------------------------------------------------------------------- /2021/25/frames/frame_117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_117.png -------------------------------------------------------------------------------- /2021/25/frames/frame_118.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_118.png -------------------------------------------------------------------------------- /2021/25/frames/frame_119.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_119.png -------------------------------------------------------------------------------- /2021/25/frames/frame_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_120.png -------------------------------------------------------------------------------- /2021/25/frames/frame_121.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_121.png -------------------------------------------------------------------------------- /2021/25/frames/frame_122.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_122.png -------------------------------------------------------------------------------- /2021/25/frames/frame_123.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_123.png -------------------------------------------------------------------------------- /2021/25/frames/frame_124.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_124.png -------------------------------------------------------------------------------- /2021/25/frames/frame_125.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_125.png -------------------------------------------------------------------------------- /2021/25/frames/frame_126.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_126.png -------------------------------------------------------------------------------- /2021/25/frames/frame_127.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_127.png -------------------------------------------------------------------------------- /2021/25/frames/frame_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_128.png -------------------------------------------------------------------------------- /2021/25/frames/frame_129.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_129.png -------------------------------------------------------------------------------- /2021/25/frames/frame_130.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_130.png -------------------------------------------------------------------------------- /2021/25/frames/frame_131.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_131.png -------------------------------------------------------------------------------- /2021/25/frames/frame_132.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_132.png -------------------------------------------------------------------------------- /2021/25/frames/frame_133.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_133.png -------------------------------------------------------------------------------- /2021/25/frames/frame_134.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_134.png -------------------------------------------------------------------------------- /2021/25/frames/frame_135.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_135.png -------------------------------------------------------------------------------- /2021/25/frames/frame_136.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_136.png -------------------------------------------------------------------------------- /2021/25/frames/frame_137.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_137.png -------------------------------------------------------------------------------- /2021/25/frames/frame_138.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_138.png -------------------------------------------------------------------------------- /2021/25/frames/frame_139.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_139.png -------------------------------------------------------------------------------- /2021/25/frames/frame_140.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_140.png -------------------------------------------------------------------------------- /2021/25/frames/frame_141.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_141.png -------------------------------------------------------------------------------- /2021/25/frames/frame_142.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_142.png -------------------------------------------------------------------------------- /2021/25/frames/frame_143.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_143.png -------------------------------------------------------------------------------- /2021/25/frames/frame_144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_144.png -------------------------------------------------------------------------------- /2021/25/frames/frame_145.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_145.png -------------------------------------------------------------------------------- /2021/25/frames/frame_146.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_146.png -------------------------------------------------------------------------------- /2021/25/frames/frame_147.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_147.png -------------------------------------------------------------------------------- /2021/25/frames/frame_148.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_148.png -------------------------------------------------------------------------------- /2021/25/frames/frame_149.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_149.png -------------------------------------------------------------------------------- /2021/25/frames/frame_150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_150.png -------------------------------------------------------------------------------- /2021/25/frames/frame_151.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_151.png -------------------------------------------------------------------------------- /2021/25/frames/frame_152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_152.png -------------------------------------------------------------------------------- /2021/25/frames/frame_153.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_153.png -------------------------------------------------------------------------------- /2021/25/frames/frame_154.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_154.png -------------------------------------------------------------------------------- /2021/25/frames/frame_155.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_155.png -------------------------------------------------------------------------------- /2021/25/frames/frame_156.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_156.png -------------------------------------------------------------------------------- /2021/25/frames/frame_157.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_157.png -------------------------------------------------------------------------------- /2021/25/frames/frame_158.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_158.png -------------------------------------------------------------------------------- /2021/25/frames/frame_159.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_159.png -------------------------------------------------------------------------------- /2021/25/frames/frame_160.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_160.png -------------------------------------------------------------------------------- /2021/25/frames/frame_161.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_161.png -------------------------------------------------------------------------------- /2021/25/frames/frame_162.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_162.png -------------------------------------------------------------------------------- /2021/25/frames/frame_163.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_163.png -------------------------------------------------------------------------------- /2021/25/frames/frame_164.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_164.png -------------------------------------------------------------------------------- /2021/25/frames/frame_165.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_165.png -------------------------------------------------------------------------------- /2021/25/frames/frame_166.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_166.png -------------------------------------------------------------------------------- /2021/25/frames/frame_167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_167.png -------------------------------------------------------------------------------- /2021/25/frames/frame_168.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_168.png -------------------------------------------------------------------------------- /2021/25/frames/frame_169.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_169.png -------------------------------------------------------------------------------- /2021/25/frames/frame_170.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_170.png -------------------------------------------------------------------------------- /2021/25/frames/frame_171.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_171.png -------------------------------------------------------------------------------- /2021/25/frames/frame_172.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_172.png -------------------------------------------------------------------------------- /2021/25/frames/frame_173.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_173.png -------------------------------------------------------------------------------- /2021/25/frames/frame_174.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_174.png -------------------------------------------------------------------------------- /2021/25/frames/frame_175.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_175.png -------------------------------------------------------------------------------- /2021/25/frames/frame_176.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_176.png -------------------------------------------------------------------------------- /2021/25/frames/frame_177.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_177.png -------------------------------------------------------------------------------- /2021/25/frames/frame_178.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_178.png -------------------------------------------------------------------------------- /2021/25/frames/frame_179.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_179.png -------------------------------------------------------------------------------- /2021/25/frames/frame_180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_180.png -------------------------------------------------------------------------------- /2021/25/frames/frame_181.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_181.png -------------------------------------------------------------------------------- /2021/25/frames/frame_182.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_182.png -------------------------------------------------------------------------------- /2021/25/frames/frame_183.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_183.png -------------------------------------------------------------------------------- /2021/25/frames/frame_184.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_184.png -------------------------------------------------------------------------------- /2021/25/frames/frame_185.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_185.png -------------------------------------------------------------------------------- /2021/25/frames/frame_186.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_186.png -------------------------------------------------------------------------------- /2021/25/frames/frame_187.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_187.png -------------------------------------------------------------------------------- /2021/25/frames/frame_188.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_188.png -------------------------------------------------------------------------------- /2021/25/frames/frame_189.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_189.png -------------------------------------------------------------------------------- /2021/25/frames/frame_190.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_190.png -------------------------------------------------------------------------------- /2021/25/frames/frame_191.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_191.png -------------------------------------------------------------------------------- /2021/25/frames/frame_192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_192.png -------------------------------------------------------------------------------- /2021/25/frames/frame_193.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_193.png -------------------------------------------------------------------------------- /2021/25/frames/frame_194.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_194.png -------------------------------------------------------------------------------- /2021/25/frames/frame_195.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_195.png -------------------------------------------------------------------------------- /2021/25/frames/frame_196.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_196.png -------------------------------------------------------------------------------- /2021/25/frames/frame_197.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_197.png -------------------------------------------------------------------------------- /2021/25/frames/frame_198.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_198.png -------------------------------------------------------------------------------- /2021/25/frames/frame_199.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_199.png -------------------------------------------------------------------------------- /2021/25/frames/frame_200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_200.png -------------------------------------------------------------------------------- /2021/25/frames/frame_201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_201.png -------------------------------------------------------------------------------- /2021/25/frames/frame_202.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_202.png -------------------------------------------------------------------------------- /2021/25/frames/frame_203.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_203.png -------------------------------------------------------------------------------- /2021/25/frames/frame_204.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_204.png -------------------------------------------------------------------------------- /2021/25/frames/frame_205.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_205.png -------------------------------------------------------------------------------- /2021/25/frames/frame_206.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_206.png -------------------------------------------------------------------------------- /2021/25/frames/frame_207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_207.png -------------------------------------------------------------------------------- /2021/25/frames/frame_208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_208.png -------------------------------------------------------------------------------- /2021/25/frames/frame_209.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_209.png -------------------------------------------------------------------------------- /2021/25/frames/frame_210.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_210.png -------------------------------------------------------------------------------- /2021/25/frames/frame_211.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_211.png -------------------------------------------------------------------------------- /2021/25/frames/frame_212.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_212.png -------------------------------------------------------------------------------- /2021/25/frames/frame_213.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_213.png -------------------------------------------------------------------------------- /2021/25/frames/frame_214.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_214.png -------------------------------------------------------------------------------- /2021/25/frames/frame_215.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_215.png -------------------------------------------------------------------------------- /2021/25/frames/frame_216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_216.png -------------------------------------------------------------------------------- /2021/25/frames/frame_217.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_217.png -------------------------------------------------------------------------------- /2021/25/frames/frame_218.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_218.png -------------------------------------------------------------------------------- /2021/25/frames/frame_219.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_219.png -------------------------------------------------------------------------------- /2021/25/frames/frame_220.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_220.png -------------------------------------------------------------------------------- /2021/25/frames/frame_221.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_221.png -------------------------------------------------------------------------------- /2021/25/frames/frame_222.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_222.png -------------------------------------------------------------------------------- /2021/25/frames/frame_223.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_223.png -------------------------------------------------------------------------------- /2021/25/frames/frame_224.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_224.png -------------------------------------------------------------------------------- /2021/25/frames/frame_225.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_225.png -------------------------------------------------------------------------------- /2021/25/frames/frame_226.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_226.png -------------------------------------------------------------------------------- /2021/25/frames/frame_227.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_227.png -------------------------------------------------------------------------------- /2021/25/frames/frame_228.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_228.png -------------------------------------------------------------------------------- /2021/25/frames/frame_229.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_229.png -------------------------------------------------------------------------------- /2021/25/frames/frame_230.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_230.png -------------------------------------------------------------------------------- /2021/25/frames/frame_231.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_231.png -------------------------------------------------------------------------------- /2021/25/frames/frame_232.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_232.png -------------------------------------------------------------------------------- /2021/25/frames/frame_233.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_233.png -------------------------------------------------------------------------------- /2021/25/frames/frame_234.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_234.png -------------------------------------------------------------------------------- /2021/25/frames/frame_235.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_235.png -------------------------------------------------------------------------------- /2021/25/frames/frame_236.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_236.png -------------------------------------------------------------------------------- /2021/25/frames/frame_237.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_237.png -------------------------------------------------------------------------------- /2021/25/frames/frame_238.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_238.png -------------------------------------------------------------------------------- /2021/25/frames/frame_239.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_239.png -------------------------------------------------------------------------------- /2021/25/frames/frame_240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_240.png -------------------------------------------------------------------------------- /2021/25/frames/frame_241.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_241.png -------------------------------------------------------------------------------- /2021/25/frames/frame_242.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_242.png -------------------------------------------------------------------------------- /2021/25/frames/frame_243.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_243.png -------------------------------------------------------------------------------- /2021/25/frames/frame_244.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_244.png -------------------------------------------------------------------------------- /2021/25/frames/frame_245.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_245.png -------------------------------------------------------------------------------- /2021/25/frames/frame_246.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_246.png -------------------------------------------------------------------------------- /2021/25/frames/frame_247.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_247.png -------------------------------------------------------------------------------- /2021/25/frames/frame_248.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_248.png -------------------------------------------------------------------------------- /2021/25/frames/frame_249.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_249.png -------------------------------------------------------------------------------- /2021/25/frames/frame_250.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_250.png -------------------------------------------------------------------------------- /2021/25/frames/frame_251.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_251.png -------------------------------------------------------------------------------- /2021/25/frames/frame_252.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_252.png -------------------------------------------------------------------------------- /2021/25/frames/frame_253.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_253.png -------------------------------------------------------------------------------- /2021/25/frames/frame_254.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_254.png -------------------------------------------------------------------------------- /2021/25/frames/frame_255.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_255.png -------------------------------------------------------------------------------- /2021/25/frames/frame_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_256.png -------------------------------------------------------------------------------- /2021/25/frames/frame_257.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_257.png -------------------------------------------------------------------------------- /2021/25/frames/frame_258.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_258.png -------------------------------------------------------------------------------- /2021/25/frames/frame_259.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_259.png -------------------------------------------------------------------------------- /2021/25/frames/frame_260.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_260.png -------------------------------------------------------------------------------- /2021/25/frames/frame_261.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_261.png -------------------------------------------------------------------------------- /2021/25/frames/frame_262.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_262.png -------------------------------------------------------------------------------- /2021/25/frames/frame_263.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_263.png -------------------------------------------------------------------------------- /2021/25/frames/frame_264.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_264.png -------------------------------------------------------------------------------- /2021/25/frames/frame_265.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_265.png -------------------------------------------------------------------------------- /2021/25/frames/frame_266.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_266.png -------------------------------------------------------------------------------- /2021/25/frames/frame_267.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_267.png -------------------------------------------------------------------------------- /2021/25/frames/frame_268.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_268.png -------------------------------------------------------------------------------- /2021/25/frames/frame_269.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_269.png -------------------------------------------------------------------------------- /2021/25/frames/frame_270.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_270.png -------------------------------------------------------------------------------- /2021/25/frames/frame_271.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_271.png -------------------------------------------------------------------------------- /2021/25/frames/frame_272.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_272.png -------------------------------------------------------------------------------- /2021/25/frames/frame_273.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_273.png -------------------------------------------------------------------------------- /2021/25/frames/frame_274.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_274.png -------------------------------------------------------------------------------- /2021/25/frames/frame_275.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_275.png -------------------------------------------------------------------------------- /2021/25/frames/frame_276.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_276.png -------------------------------------------------------------------------------- /2021/25/frames/frame_277.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_277.png -------------------------------------------------------------------------------- /2021/25/frames/frame_278.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_278.png -------------------------------------------------------------------------------- /2021/25/frames/frame_279.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_279.png -------------------------------------------------------------------------------- /2021/25/frames/frame_280.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_280.png -------------------------------------------------------------------------------- /2021/25/frames/frame_281.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_281.png -------------------------------------------------------------------------------- /2021/25/frames/frame_282.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_282.png -------------------------------------------------------------------------------- /2021/25/frames/frame_283.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_283.png -------------------------------------------------------------------------------- /2021/25/frames/frame_284.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_284.png -------------------------------------------------------------------------------- /2021/25/frames/frame_285.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_285.png -------------------------------------------------------------------------------- /2021/25/frames/frame_286.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_286.png -------------------------------------------------------------------------------- /2021/25/frames/frame_287.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_287.png -------------------------------------------------------------------------------- /2021/25/frames/frame_288.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_288.png -------------------------------------------------------------------------------- /2021/25/frames/frame_289.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_289.png -------------------------------------------------------------------------------- /2021/25/frames/frame_290.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_290.png -------------------------------------------------------------------------------- /2021/25/frames/frame_291.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_291.png -------------------------------------------------------------------------------- /2021/25/frames/frame_292.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_292.png -------------------------------------------------------------------------------- /2021/25/frames/frame_293.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_293.png -------------------------------------------------------------------------------- /2021/25/frames/frame_294.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_294.png -------------------------------------------------------------------------------- /2021/25/frames/frame_295.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_295.png -------------------------------------------------------------------------------- /2021/25/frames/frame_296.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_296.png -------------------------------------------------------------------------------- /2021/25/frames/frame_297.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_297.png -------------------------------------------------------------------------------- /2021/25/frames/frame_298.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_298.png -------------------------------------------------------------------------------- /2021/25/frames/frame_299.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_299.png -------------------------------------------------------------------------------- /2021/25/frames/frame_300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_300.png -------------------------------------------------------------------------------- /2021/25/frames/frame_301.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_301.png -------------------------------------------------------------------------------- /2021/25/frames/frame_302.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_302.png -------------------------------------------------------------------------------- /2021/25/frames/frame_303.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_303.png -------------------------------------------------------------------------------- /2021/25/frames/frame_304.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_304.png -------------------------------------------------------------------------------- /2021/25/frames/frame_305.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_305.png -------------------------------------------------------------------------------- /2021/25/frames/frame_306.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_306.png -------------------------------------------------------------------------------- /2021/25/frames/frame_307.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_307.png -------------------------------------------------------------------------------- /2021/25/frames/frame_308.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_308.png -------------------------------------------------------------------------------- /2021/25/frames/frame_309.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_309.png -------------------------------------------------------------------------------- /2021/25/frames/frame_310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_310.png -------------------------------------------------------------------------------- /2021/25/frames/frame_311.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_311.png -------------------------------------------------------------------------------- /2021/25/frames/frame_312.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_312.png -------------------------------------------------------------------------------- /2021/25/frames/frame_313.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_313.png -------------------------------------------------------------------------------- /2021/25/frames/frame_314.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_314.png -------------------------------------------------------------------------------- /2021/25/frames/frame_315.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_315.png -------------------------------------------------------------------------------- /2021/25/frames/frame_316.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_316.png -------------------------------------------------------------------------------- /2021/25/frames/frame_317.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_317.png -------------------------------------------------------------------------------- /2021/25/frames/frame_318.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_318.png -------------------------------------------------------------------------------- /2021/25/frames/frame_319.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_319.png -------------------------------------------------------------------------------- /2021/25/frames/frame_320.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_320.png -------------------------------------------------------------------------------- /2021/25/frames/frame_321.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_321.png -------------------------------------------------------------------------------- /2021/25/frames/frame_322.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_322.png -------------------------------------------------------------------------------- /2021/25/frames/frame_323.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_323.png -------------------------------------------------------------------------------- /2021/25/frames/frame_324.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_324.png -------------------------------------------------------------------------------- /2021/25/frames/frame_325.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_325.png -------------------------------------------------------------------------------- /2021/25/frames/frame_326.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_326.png -------------------------------------------------------------------------------- /2021/25/frames/frame_327.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_327.png -------------------------------------------------------------------------------- /2021/25/frames/frame_328.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_328.png -------------------------------------------------------------------------------- /2021/25/frames/frame_329.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_329.png -------------------------------------------------------------------------------- /2021/25/frames/frame_330.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_330.png -------------------------------------------------------------------------------- /2021/25/frames/frame_331.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_331.png -------------------------------------------------------------------------------- /2021/25/frames/frame_332.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_332.png -------------------------------------------------------------------------------- /2021/25/frames/frame_333.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_333.png -------------------------------------------------------------------------------- /2021/25/frames/frame_334.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_334.png -------------------------------------------------------------------------------- /2021/25/frames/frame_335.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_335.png -------------------------------------------------------------------------------- /2021/25/frames/frame_336.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/frames/frame_336.png -------------------------------------------------------------------------------- /2021/25/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input.js'); 2 | const { SeaFloor } = require('./sea-floor.js'); 3 | 4 | let sea_floor = new SeaFloor(input); 5 | 6 | const count = sea_floor.run(); 7 | console.log(count); 8 | -------------------------------------------------------------------------------- /2021/25/visualization.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/visualization.gif -------------------------------------------------------------------------------- /2021/25/visualization.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/2021/25/visualization.mp4 -------------------------------------------------------------------------------- /2021/3/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | // Just use strings 5 | const input = fs 6 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 7 | .toString() 8 | .trim() 9 | .split('\n'); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2021/6/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2021/7/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split(',') 9 | .map((num) => parseInt(num, 10)); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2022/1/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n\n'); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2022/1/part-one.js: -------------------------------------------------------------------------------- 1 | const { input } = require('./input'); 2 | 3 | const sumsSorted = input 4 | .map((elf) => { 5 | return elf 6 | .split('\n') 7 | .map((item) => parseInt(item, 10)) 8 | .reduce((sum, v) => sum + v, 0); 9 | }) 10 | .sort((a, z) => z - a); 11 | 12 | console.log(sumsSorted[0]); 13 | -------------------------------------------------------------------------------- /2022/12/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((line) => line.split('')); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2022/6/part-one.js: -------------------------------------------------------------------------------- 1 | const { getPacketStartIndex } = require('./input'); 2 | 3 | console.log(getPacketStartIndex(4)); 4 | -------------------------------------------------------------------------------- /2022/6/part-two.js: -------------------------------------------------------------------------------- 1 | const { getPacketStartIndex } = require('./input'); 2 | 3 | console.log(getPacketStartIndex(14)); 4 | -------------------------------------------------------------------------------- /2022/7/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2022/8/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim(); 8 | 9 | module.exports = { 10 | input, 11 | }; 12 | -------------------------------------------------------------------------------- /2023/1/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2023/11/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n') 9 | .map((line) => line.split('')); 10 | 11 | module.exports = { 12 | input, 13 | }; 14 | -------------------------------------------------------------------------------- /2023/14/sample-input.txt: -------------------------------------------------------------------------------- 1 | O....#.... 2 | O.OO#....# 3 | .....##... 4 | OO.#O....O 5 | .O.....O#. 6 | O.#..O.#.# 7 | ..O..#O..O 8 | .......O.. 9 | #....###.. 10 | #OO..#.... -------------------------------------------------------------------------------- /2023/2/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2023/3/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs.readFileSync(path.join(__dirname, 'input.txt'), 'utf8').toString().trim(); 5 | 6 | module.exports = { 7 | input, 8 | }; 9 | -------------------------------------------------------------------------------- /2023/4/input.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | const fs = require('fs'); 3 | 4 | const input = fs 5 | .readFileSync(path.join(__dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim() 8 | .split('\n'); 9 | 10 | module.exports = { 11 | input, 12 | }; 13 | -------------------------------------------------------------------------------- /2023/6/input.txt: -------------------------------------------------------------------------------- 1 | Time: 52 94 75 94 2 | Distance: 426 1374 1279 1216 -------------------------------------------------------------------------------- /2023/9/sample.txt: -------------------------------------------------------------------------------- 1 | 0 3 6 9 12 15 2 | 1 3 6 10 15 21 3 | 10 13 16 21 30 45 -------------------------------------------------------------------------------- /2024/10/sample-input.txt: -------------------------------------------------------------------------------- 1 | 89010123 2 | 78121874 3 | 87430965 4 | 96549874 5 | 45678903 6 | 32019012 7 | 01329801 8 | 10456732 -------------------------------------------------------------------------------- /2024/11/input.txt: -------------------------------------------------------------------------------- 1 | 0 89741 316108 7641 756 9 7832357 91 -------------------------------------------------------------------------------- /2024/11/sample-input.txt: -------------------------------------------------------------------------------- 1 | 125 17 -------------------------------------------------------------------------------- /2024/3/input.ts: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | import fs from 'fs'; 3 | 4 | export const input = fs 5 | .readFileSync(path.join(import.meta.dirname, 'input.txt'), 'utf8') 6 | .toString() 7 | .trim(); 8 | -------------------------------------------------------------------------------- /2024/4/sample-input.txt: -------------------------------------------------------------------------------- 1 | MMMSXXMASM 2 | MSAMXMSMSA 3 | AMXSXMAAMM 4 | MSAMASMSMX 5 | XMASAMXAMM 6 | XXAMMXXAMA 7 | SMSMSASXSS 8 | SAXAMASAAA 9 | MAMMMXMMMM 10 | MXMXAXMASX -------------------------------------------------------------------------------- /2024/7/sample-input.txt: -------------------------------------------------------------------------------- 1 | 190: 10 19 2 | 3267: 81 40 27 3 | 83: 17 5 4 | 156: 15 6 5 | 7290: 6 8 6 15 6 | 161011: 16 10 13 7 | 192: 17 8 14 8 | 21037: 9 7 18 13 9 | 292: 11 6 16 20 -------------------------------------------------------------------------------- /2024/8/sample-input.txt: -------------------------------------------------------------------------------- 1 | ............ 2 | ........0... 3 | .....0...... 4 | .......0.... 5 | ....0....... 6 | ......A..... 7 | ............ 8 | ............ 9 | ........A... 10 | .........A.. 11 | ............ 12 | ............ -------------------------------------------------------------------------------- /2024/9/sample-input.txt: -------------------------------------------------------------------------------- 1 | 2333133121414131402 -------------------------------------------------------------------------------- /docs/_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-primer 2 | google_analytics: "UA-103164724-3" 3 | -------------------------------------------------------------------------------- /docs/assets/img/day-10-visualization.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/docs/assets/img/day-10-visualization.gif -------------------------------------------------------------------------------- /docs/assets/img/day-12-visualization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/docs/assets/img/day-12-visualization.png -------------------------------------------------------------------------------- /docs/assets/js/2016/23/codesandbox/Instruction.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/docs/assets/js/2016/23/codesandbox/Instruction.js -------------------------------------------------------------------------------- /docs/assets/media/2018-day-22-sample-visualization.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/docs/assets/media/2018-day-22-sample-visualization.mp4 -------------------------------------------------------------------------------- /docs/assets/media/2019-day-13-visualization.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/docs/assets/media/2019-day-13-visualization.mp4 -------------------------------------------------------------------------------- /docs/assets/media/day-13-visualization.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/romellem/advent-of-code/dda62a3566d6de3e7979c52285d24ed5d4f290d5/docs/assets/media/day-13-visualization.mp4 --------------------------------------------------------------------------------