Table of Contents:
| Size | Runtime | Day, Part, Solution | ||
|---|---|---|---|---|
| 59 bytes | ▍ | <100 ms | ▏ | 2015, Day 01, Part 1, Python |
| 92 bytes | ▌ | <100 ms | ▏ | 2015, Day 01, Part 2, Python |
| 99 bytes | ▌ | <100 ms | ▏ | 2015, Day 02, Part 1, Python |
| 95 bytes | ▌ | <100 ms | ▏ | 2015, Day 02, Part 2, Python |
| 109 bytes | ▋ | <100 ms | ▏ | 2015, Day 03, Part 1, Python |
| 128 bytes | ▋ | <100 ms | ▏ | 2015, Day 03, Part 2, Python |
| 89 bytes | ▌ | ~150 ms | ▎ | 2015, Day 04, Part 1, Python |
| 89 bytes | ▌ | ~3.5 s | █▌ | 2015, Day 04, Part 2, Python |
| 142 bytes | ▊ | <100 ms | ▏ | 2015, Day 05, Part 1, Python |
| 117 bytes | ▋ | <100 ms | ▏ | 2015, Day 05, Part 2, Python |
| 226 bytes | █▏ | ~3.5 s | █▌ | 2015, Day 06, Part 1, Python |
| 229 bytes | █▏ | ~5 s | █▋ | 2015, Day 06, Part 2, Python |
| 419 bytes | █▉ | <100 ms | ▏ | 2015, Day 07, Parts 1+2, Python |
| 65 bytes | ▍ | <100 ms | ▏ | 2015, Day 08, Part 1, Python |
| 66 bytes | ▍ | <100 ms | ▏ | 2015, Day 08, Part 2, Python |
| 186 bytes | ▉ | ~100 ms | ▏ | 2015, Day 09, Part 1, Python |
| 186 bytes | ▉ | ~100 ms | ▏ | 2015, Day 09, Part 2, Python |
| 121 bytes | ▋ | ~700 ms | ▉ | 2015, Day 10, Part 1, Python |
| 133 bytes | ▊ | ~6 s | █▊ | 2015, Day 10, Part 2, Python |
| 276 bytes | █▍ | ~150 ms | ▎ | 2015, Day 11, Part 1, Python |
| 314 bytes | █▌ | ~6 s | █▊ | 2015, Day 11, Part 2, Python |
| 75 bytes | ▌ | <100 ms | ▏ | 2015, Day 12, Part 1, Python |
| 186 bytes | ▉ | <100 ms | ▏ | 2015, Day 12, Part 2, Python |
| 287 bytes | █▍ | ~150 ms | ▎ | 2015, Day 13, Part 1, Python |
| 298 bytes | █▍ | ~1.5 s | █▏ | 2015, Day 13, Part 2, Python |
| 122 bytes | ▋ | <100 ms | ▏ | 2015, Day 14, Part 1, Python |
| 203 bytes | █ | <100 ms | ▏ | 2015, Day 14, Part 2, Python |
| 253 bytes | █▎ | ~1 s | █ | 2015, Day 15, Part 1, Python |
| 263 bytes | █▎ | ~1 s | █ | 2015, Day 15, Part 2, Python |
| 264 bytes | █▎ | <100 ms | ▏ | 2015, Day 16, Part 1, Python |
| 327 bytes | █▌ | <100 ms | ▏ | 2015, Day 16, Part 2, Python |
| 112 bytes | ▋ | ~3 s | █▍ | 2015, Day 17, Part 1, Python |
| 166 bytes | ▉ | ~3 s | █▍ | 2015, Day 17, Part 2, Python |
| 292 bytes | █▍ | ~1 s | █ | 2015, Day 18, Part 1, Python |
| 350 bytes | █▋ | ~1 s | █ | 2015, Day 18, Part 2, Python |
| 275 bytes | █▍ | <100 ms | ▏ | 2015, Day 19, Part 1, Python |
| 240 bytes | █▏ | <100 ms | ▏ | 2015, Day 19, Part 2, Python (dumb DFS) |
| 281 bytes | █▍ | <100 ms | ▏ | 2015, Day 19, Part 2, Python (greedy DFS) |
| 141 bytes | ▊ | ~3 s | █▍ | 2015, Day 20, Part 1, Python |
| 148 bytes | ▊ | ~4 s | █▌ | 2015, Day 20, Part 2, Python |
| 335 bytes | █▋ | <100 ms | ▏ | 2015, Day 21, Part 1, Python |
| 334 bytes | █▋ | <100 ms | ▏ | 2015, Day 21, Part 2, Python |
| 530 bytes | ██▍ | ~1 s | █ | 2015, Day 22, Part 1, Python |
| 547 bytes | ██▌ | ~5 s | █▋ | 2015, Day 22, Part 2, Python |
| 276 bytes | █▍ | <100 ms | ▏ | 2015, Day 23, Part 1, Python |
| 276 bytes | █▍ | <100 ms | ▏ | 2015, Day 23, Part 2, Python |
| 232 bytes | █▏ | ~15 m | ███▋ | 2015, Day 24, Part 1, Python (brute-force) |
| 238 bytes | █▏ | <100 ms | ▏ | 2015, Day 24, Parts 1+2, Python (proper algorithm) |
| 145 bytes | ▊ | ~3 s | █▍ | 2015, Day 25, Part 1, Python |
| 142 bytes | ▊ | <100 ms | ▏ | 2016, Day 01, Part 1, Python |
| 212 bytes | █ | <100 ms | ▏ | 2016, Day 01, Part 2, Python |
| 161 bytes | ▉ | <100 ms | ▏ | 2016, Day 02, Part 1, Python |
| 177 bytes | ▉ | <100 ms | ▏ | 2016, Day 02, Part 2, Python |
| 84 bytes | ▌ | <100 ms | ▏ | 2016, Day 03, Part 1, Python |
| 143 bytes | ▊ | <100 ms | ▏ | 2016, Day 03, Part 2, Python |
| 178 bytes | ▉ | <100 ms | ▏ | 2016, Day 04, Part 1, Python |
| 151 bytes | ▊ | <100 ms | ▏ | 2016, Day 04, Part 2, Python |
| 123 bytes | ▋ | ~10 s | █▉ | 2016, Day 05, Part 1, Python |
| 172 bytes | ▉ | ~40 s | ██▍ | 2016, Day 05, Part 2, Python |
| 92 bytes | ▌ | <100 ms | ▏ | 2016, Day 06, Part 1, Python |
| 92 bytes | ▌ | <100 ms | ▏ | 2016, Day 06, Part 2, Python |
| 147 bytes | ▊ | <100 ms | ▏ | 2016, Day 07, Part 1, Python |
| 208 bytes | █ | <100 ms | ▏ | 2016, Day 07, Part 2, Python |
| 321 bytes | █▌ | <100 ms | ▏ | 2016, Day 08, Parts 1+2, Python |
| 155 bytes | ▊ | <100 ms | ▏ | 2016, Day 09, Part 1, Python |
| 186 bytes | ▉ | <100 ms | ▏ | 2016, Day 09, Part 2, Python |
| 320 bytes | █▌ | <100 ms | ▏ | 2016, Day 10, Part 1, Python |
| 336 bytes | █▋ | <100 ms | ▏ | 2016, Day 10, Part 2, Python |
| 640 bytes | ██▉ | ~15 s | ██ | 2016, Day 11, Part 1, Python (without canonicalization) |
| 701 bytes | ███▏ | ~6 s | █▊ | 2016, Day 11, Part 2, Python (with canonicalization) |
| 270 bytes | █▎ | ~500 ms | ▊ | 2016, Day 12, Part 1, Python |
| 275 bytes | █▍ | ~20 s | ██▏ | 2016, Day 12, Part 2, Python |
| 236 bytes | █▏ | <100 ms | ▏ | 2016, Day 13, Part 1, Python |
| 253 bytes | █▎ | <100 ms | ▏ | 2016, Day 13, Part 2, Python |
| 198 bytes | █ | ~2 s | █▎ | 2016, Day 14, Part 1, Python |
| 271 bytes | █▎ | ~30 s | ██▎ | 2016, Day 14, Part 2, Python |
| 124 bytes | ▋ | <100 ms | ▏ | 2016, Day 15, Part 1, Python |
| 147 bytes | ▊ | ~1 s | █ | 2016, Day 15, Part 2, Python |
| 173 bytes | ▉ | <100 ms | ▏ | 2016, Day 16, Part 1, Python |
| 180 bytes | ▉ | ~10 s | █▉ | 2016, Day 16, Part 2, Python |
| 326 bytes | █▌ | ~150 ms | ▎ | 2016, Day 16, Part 2, C |
| 273 bytes | █▎ | ~100 ms | ▏ | 2016, Day 17, Part 1, Python |
| 286 bytes | █▍ | ~3.5 s | █▌ | 2016, Day 17, Part 2, Python |
| 146 bytes | ▊ | <100 ms | ▏ | 2016, Day 18, Part 1, Python |
| 150 bytes | ▊ | ~7 s | █▊ | 2016, Day 18, Part 2, Python |
| 131 bytes | ▊ | ~1.5 s | █▏ | 2016, Day 19, Part 1, Python |
| 166 bytes | ▉ | ~8 s | █▊ | 2016, Day 19, Part 2, Python |
| 276 bytes | █▍ | ~100 ms | ▏ | 2016, Day 19, Part 2, C |
| 127 bytes | ▋ | <100 ms | ▏ | 2016, Day 20, Part 1, Python |
| 179 bytes | ▉ | <100 ms | ▏ | 2016, Day 20, Part 2, Python |
| 410 bytes | █▉ | <100 ms | ▏ | 2016, Day 21, Part 1, Python |
| 417 bytes | █▉ | <100 ms | ▏ | 2016, Day 21, Part 2, Python |
| 142 bytes | ▊ | ~200 ms | ▍ | 2016, Day 22, Part 1, Python |
| 181 bytes | ▉ | <100 ms | ▏ | 2016, Day 22, Part 2, Python |
| 367 bytes | █▊ | <100 ms | ▏ | 2016, Day 23, Part 1, Python |
| 100 bytes | ▌ | <100 ms | ▏ | 2016, Day 23, Part 2, Python |
| 419 bytes | █▉ | <100 ms | ▏ | 2016, Day 24, Part 1, Python |
| 425 bytes | ██ | <100 ms | ▏ | 2016, Day 24, Part 2, Python |
| 114 bytes | ▋ | <100 ms | ▏ | 2016, Day 25, Part 1, Python |
| 93 bytes | ▌ | <100ms | ▏ | 2017, Day 01, Part 1, Python |
| 100 bytes | ▌ | <100ms | ▏ | 2017, Day 01, Part 2, Python |
| 87 bytes | ▌ | <100 ms | ▏ | 2017, Day 02, Part 1, Python |
| 151 bytes | ▊ | <100 ms | ▏ | 2017, Day 02, Part 2, Python |
| 68 bytes | ▍ | <100 ms | ▏ | 2017, Day 03, Part 1, Python |
| 202 bytes | █ | <100 ms | ▏ | 2017, Day 03, Part 2, Python |
| 115 bytes | ▋ | <100 ms | ▏ | 2017, Day 04, Part 1, Python |
| 132 bytes | ▊ | <100 ms | ▏ | 2017, Day 04, Part 2, Python |
| 102 bytes | ▋ | ~100 ms | ▏ | 2017, Day 05, Part 1, Python |
| 112 bytes | ▋ | ~10 s | █▉ | 2017, Day 05, Part 2, Python |
| 199 bytes | █ | <100 ms | ▏ | 2017, Day 06, Part 1, Python |
| 235 bytes | █▏ | <100 ms | ▏ | 2017, Day 06, Part 2, Python |
| 128 bytes | ▋ | <100 ms | ▏ | 2017, Day 07, Part 1, Python |
| 383 bytes | █▊ | <100 ms | ▏ | 2017, Day 07, Part 2, Python |
| 291 bytes | █▍ | <100 ms | ▏ | 2017, Day 08, Part 1, Python |
| 303 bytes | █▍ | <100 ms | ▏ | 2017, Day 08, Part 2, Python |
| 143 bytes | ▊ | <100 ms | ▏ | 2017, Day 09, Part 1, Python |
| 109 bytes | ▋ | <100 ms | ▏ | 2017, Day 09, Part 2, Python |
| 170 bytes | ▉ | <100 ms | ▏ | 2017, Day 10, Part 1, Python |
| 253 bytes | █▎ | <100 ms | ▏ | 2017, Day 10, Part 2, Python |
| 167 bytes | ▉ | <100 ms | ▏ | 2017, Day 11, Part 1, Python |
| 194 bytes | █ | <100 ms | ▏ | 2017, Day 11, Part 2, Python |
| 159 bytes | ▊ | <100 ms | ▏ | 2017, Day 12, Part 1, Python |
| 197 bytes | █ | <100 ms | ▏ | 2017, Day 12, Part 2, Python |
| 149 bytes | ▊ | <100 ms | ▏ | 2017, Day 13, Part 1, Python |
| 167 bytes | ▉ | ~5 s | █▋ | 2017, Day 13, Part 2, Python |
| 341 bytes | █▋ | ~500 ms | ▊ | 2017, Day 14, Part 1, Python |
| 586 bytes | ██▋ | ~500 ms | ▊ | 2017, Day 14, Part 2, Python |
| 154 bytes | ▊ | ~10 s | █▉ | 2017, Day 15, Part 1, Python |
| 195 bytes | █ | ~8 s | █▊ | 2017, Day 15, Part 2, Python |
| 234 bytes | █▏ | ~100 ms | ▏ | 2017, Day 16, Part 1, Python |
| 309 bytes | █▌ | ~750 ms | ▉ | 2017, Day 16, Part 2, Python |
| 80 bytes | ▌ | <100 ms | ▏ | 2017, Day 17, Part 1, Python (full simulation with arrays) |
| 136 bytes | ▊ | ~10 h | █████ | 2017, Day 17, Part 2, Python (full simulation with circular list) (estimated) |
| 299 bytes | █▍ | ~8 m | ███▍ | 2017, Day 17, Part 2, C (full simulation with circular list) |
| 90 bytes | ▌ | ~12 s | ██ | 2017, Day 17, Part 2, Python (tracking) |
| 355 bytes | █▋ | <100 ms | ▏ | 2017, Day 18, Part 1, Python |
| 548 bytes | ██▌ | ~200 ms | ▍ | 2017, Day 18, Part 2, Python |
| 262 bytes | █▎ | <100 ms | ▏ | 2017, Day 19, Part 1, Python |
| 242 bytes | █▏ | <100 ms | ▏ | 2017, Day 19, Part 2, Python |
| 279 bytes | █▍ | <100 ms | ▏ | 2017, Day 19, Parts 1+2, Python |
| 210 bytes | █ | ~350 ms | ▋ | 2017, Day 20, Part 1, Python |
| 290 bytes | █▍ | ~350 ms | ▋ | 2017, Day 20, Part 2, Python |
| 452 bytes | ██▏ | ~3 s | █▍ | 2017, Day 21, Parts 1+2, Python |
| 220 bytes | █▏ | <100 ms | ▏ | 2017, Day 22, Part 1, Python |
| 229 bytes | █▏ | ~5 s | █▋ | 2017, Day 22, Part 2, Python |
| 321 bytes | █▌ | <100 ms | ▏ | 2017, Day 23, Part 1, Python |
| 149 bytes | ▊ | ~750 ms | ▉ | 2017, Day 23, Part 2, Python |
| 210 bytes | █ | ~5 s | █▋ | 2017, Day 24, Part 1, Python |
| 259 bytes | █▎ | ~5 s | █▋ | 2017, Day 24, Part 2, Python |
| 292 bytes | █▍ | ~5 s | █▋ | 2017, Day 25, Part 1, Python |
| 38 bytes | ▎ | <100 ms | ▏ | 2018, Day 01, Part 1, Python |
| 118 bytes | ▋ | <100 ms | ▏ | 2018, Day 01, Part 2, Python |
| 129 bytes | ▋ | <100 ms | ▏ | 2018, Day 02, Part 1, Python |
| 135 bytes | ▊ | <100 ms | ▏ | 2018, Day 02, Part 2, Python |
| 197 bytes | █ | ~350 ms | ▋ | 2018, Day 03, Part 1, Python |
| 291 bytes | █▍ | ~1 s | █ | 2018, Day 03, Part 2, Python |
| 359 bytes | █▋ | <100 ms | ▏ | 2018, Day 04, Part 1, Python |
| 359 bytes | █▋ | <100 ms | ▏ | 2018, Day 04, Part 2, Python |
| 181 bytes | ▉ | ~4 s | █▌ | 2018, Day 05, Part 1, Python (multi-pass) |
| 260 bytes | █▎ | ~2 s | █▎ | 2018, Day 05, Part 2, Python (single-pass) |
| 357 bytes | █▋ | ~2 s | █▎ | 2018, Day 06, Part 1, Python |
| 255 bytes | █▎ | ~750 ms | ▉ | 2018, Day 06, Part 2, Python |
| 246 bytes | █▎ | <100 ms | ▏ | 2018, Day 07, Part 1, Python |
| 408 bytes | █▉ | <100 ms | ▏ | 2018, Day 07, Part 2, Python |
| 163 bytes | ▉ | <100 ms | ▏ | 2018, Day 08, Part 1, Python |
| 232 bytes | █▏ | <100 ms | ▏ | 2018, Day 08, Part 2, Python |
| 204 bytes | █ | ~500 ms | ▊ | 2018, Day 09, Part 1, Python (array) |
| 276 bytes | █▍ | ~30 s | ██▎ | 2018, Day 09, Part 2, Python (CDLL) |
| 427 bytes | ██ | ~200 ms | ▍ | 2018, Day 09, Part 2, C (CDLL) (including compilation) |
| 365 bytes | █▊ | <100 ms | ▏ | 2018, Day 10, Parts 1+2, Python |
| 201 bytes | █ | ~150 ms | ▎ | 2018, Day 11, Part 1, Python |
| 260 bytes | █▎ | ~10 m | ███▌ | 2018, Day 11, Part 2, Python (naive) |
| 305 bytes | █▌ | ~25 s | ██▎ | 2018, Day 11, Part 2, Python (pre-summed matrix) |
| 361 bytes | █▋ | ~6 s | █▊ | 2018, Day 11, Part 2, Python (optimized pre-summed matrix) |
| 303 bytes | █▍ | ~3.5 s | █▌ | 2018, Day 11, Part 2, Python (SAT) |
| 442 bytes | ██ | ~150 ms | ▎ | 2018, Day 11, Part 2, C (optimized pre-summed matrix) |
| 381 bytes | █▊ | ~150 ms | ▎ | 2018, Day 11, Part 2, C (SAT) |
| 289 bytes | █▍ | <100 ms | ▏ | 2018, Day 12, Part 1, Python |
| 342 bytes | █▋ | <100 ms | ▏ | 2018, Day 12, Part 2, Python |
| 480 bytes | ██▎ | <100 ms | ▏ | 2018, Day 13, Part 1, Python |
| 569 bytes | ██▋ | ~150 ms | ▎ | 2018, Day 13, Part 2, Python |
| 158 bytes | ▊ | ~400 ms | ▋ | 2018, Day 14, Part 1, Python |
| 177 bytes | ▉ | ~20 s | ██▏ | 2018, Day 14, Part 2, Python |
| 314 bytes | █▌ | ~500 ms | ▊ | 2018, Day 14, Part 2, C |
| 1071 bytes | ████▊ | ~20 s | ██▏ | 2018, Day 15, Parts 1+2, Python |
| 631 bytes | ██▉ | <100 ms | ▏ | 2018, Day 16, Part 1, Python |
| 812 bytes | ███▋ | <100 ms | ▏ | 2018, Day 16, Part 2, Python |
| 725 bytes | ███▎ | ~2 s | █▎ | 2018, Day 17, Parts 1+2, Python |
| 457 bytes | ██▏ | <100 ms | ▏ | 2018, Day 18, Part 1, Python |
| 562 bytes | ██▌ | ~3 s | █▍ | 2018, Day 18, Part 2, Python |
| 661 bytes | ███ | ~3 s | █▍ | 2018, Day 19, Part 1, Python (plain simulation) |
| 704 bytes | ███▏ | ~1 s | █ | 2018, Day 19, Part 2, Python (host computation) |
| 368 bytes | █▊ | ~350 ms | ▋ | 2018, Day 20, Parts 1+2, Python (shortcut) |
| 423 bytes | ██ | ~350 ms | ▋ | 2018, Day 20, Parts 1+2, Python (correct) |
| 247 bytes | █▎ | ~100 ms | ▏ | 2018, Day 20, Parts 1+2, Python (new) |
| 130 bytes | ▋ | <100 ms | ▏ | 2018, Day 21, Part 1, Python (host computation) |
| 195 bytes | █ | <100 ms | ▏ | 2018, Day 21, Part 2, Python (host computation) |
| 279 bytes | █▍ | <100 ms | ▏ | 2018, Day 22, Part 1, Python |
| 614 bytes | ██▊ | ~10 s | █▉ | 2018, Day 22, Part 2, Python (simple) |
| 601 bytes | ██▊ | ~4 s | █▌ | 2018, Day 22, Part 2, Python (optimized) |
| 150 bytes | ▊ | <100 ms | ▏ | 2018, Day 23, Part 1, Python |
| 356 bytes | █▋ | ~500 ms | ▊ | 2018, Day 23, Part 2, Python |
| 839 bytes | ███▊ | ~5 s | █▋ | 2018, Day 24, Parts 1+2, Python |
| 271 bytes | █▎ | ~7 s | █▊ | 2018, Day 25, Part 1, Python |
| 48 bytes | ▍ | <100 ms | ▏ | 2019, Day 01, Part 1, Python |
| 80 bytes | ▌ | <100 ms | ▏ | 2019, Day 01, Part 2, Python |
| 149 bytes | ▊ | <100 ms | ▏ | 2019, Day 02, Part 1, Python |
| 197 bytes | █ | ~600 ms | ▊ | 2019, Day 02, Part 2, Python |
| 210 bytes | █ | ~150 ms | ▎ | 2019, Day 03, Part 1, Python |
| 214 bytes | █ | ~150 ms | ▎ | 2019, Day 03, Part 2, Python |
| 121 bytes | ▋ | ~1 s | █ | 2019, Day 04, Part 1, Python |
| 122 bytes | ▋ | ~1 s | █ | 2019, Day 04, Part 2, Python |
| 271 bytes | █▎ | <100 ms | ▏ | 2019, Day 05, Part 1, Python |
| 342 bytes | █▋ | <100 ms | ▏ | 2019, Day 05, Part 2, Python |
| 113 bytes | ▋ | <100 ms | ▏ | 2019, Day 06, Part 1, Python |
| 165 bytes | ▉ | <100 ms | ▏ | 2019, Day 06, Part 2, Python |
| 462 bytes | ██▏ | ~150 ms | ▎ | 2019, Day 07, Part 1, Python |
| 603 bytes | ██▊ | ~150 ms | ▎ | 2019, Day 07, Part 2, Python |
| 166 bytes | ▉ | <100 ms | ▏ | 2019, Day 08, Part 1, Python |
| 200 bytes | █ | <100 ms | ▏ | 2019, Day 08, Part 2, Python |
| 418 bytes | █▉ | <100 ms | ▏ | 2019, Day 09, Part 1, Python |
| 418 bytes | █▉ | ~2.5 s | █▍ | 2019, Day 09, Part 2, Python |
| 371 bytes | █▊ | ~1.5 s | █▏ | 2019, Day 10, Part 1, Python |
| 575 bytes | ██▋ | ~7.5 s | █▊ | 2019, Day 10, Part 2, Python |
| 701 bytes | ███▏ | ~30 s | ██▎ | 2019, Day 10, Part 2, Python (with visualization) |
| 499 bytes | ██▎ | ~500 ms | ▊ | 2019, Day 11, Part 1, Python |
| 561 bytes | ██▌ | ~100 ms | ▏ | 2019, Day 11, Part 2, Python |
| 345 bytes | █▋ | <100 ms | ▏ | 2019, Day 12, Part 1, Python |
| 473 bytes | ██▏ | ~5 s | █▋ | 2019, Day 12, Part 2, Python (derived from part 1 solution) |
| 368 bytes | █▊ | ~6 s | █▊ | 2019, Day 12, Part 2, Python (full axis separation) |
| 432 bytes | ██ | ~100 ms | ▏ | 2019, Day 13, Part 1, Python |
| 517 bytes | ██▍ | ~3 s | █▍ | 2019, Day 13, Part 2, Python |
| 314 bytes | █▌ | <100 ms | ▏ | 2019, Day 14, Part 1, Python |
| 377 bytes | █▊ | <100 ms | ▏ | 2019, Day 14, Part 2, Python |
| 665 bytes | ███ | ~300 ms | ▌ | 2019, Day 15, Part 1, Python |
| 773 bytes | ███▌ | ~300 ms | ▌ | 2019, Day 15, Part 2, Python |
| 214 bytes | █ | ~5 s | █▋ | 2019, Day 16, Part 1, Python (computing and "caching" the transform matrix first) |
| 185 bytes | ▉ | ~10 s | █▉ | 2019, Day 16, Part 1, Python (computing the transform matrix on-the-fly) |
| 179 bytes | ▉ | ~10 s | █▉ | 2019, Day 16, Part 2, Python |
| 546 bytes | ██▌ | ~250 ms | ▌ | 2019, Day 17, Part 1, Python |
| 1128 bytes | █████ | ~500 ms | ▊ | 2019, Day 17, Part 2, Python |
| 666 bytes | ███ | ~300 ms | ▌ | 2019, Day 18, Part 1, Python |
| 842 bytes | ███▊ | ~700 ms | ▉ | 2019, Day 18, Part 2, Python |
| 494 bytes | ██▎ | ~3.5 s | █▌ | 2019, Day 19, Part 1, Python (brute force) |
| 561 bytes | ██▌ | ~350 ms | ▋ | 2019, Day 19, Part 2, Python (fast search with slope estimation) |
| 519 bytes | ██▍ | ~5 s | █▋ | 2019, Day 19, Part 2, Python (edge walking) |
| 432 bytes | ██ | <100 ms | ▏ | 2019, Day 20, Part 1, Python |
| 667 bytes | ███ | ~600 ms | ▊ | 2019, Day 20, Part 2, Python |
| 488 bytes | ██▎ | ~150 ms | ▎ | 2019, Day 21, Part 1, Python |
| 540 bytes | ██▌ | ~3.5 s | █▌ | 2019, Day 21, Part 2, Python |
| 208 bytes | █ | ~100 ms | ▏ | 2019, Day 22, Part 1, Python (full deck simulation) |
| 146 bytes | ▊ | <100 ms | ▏ | 2019, Day 22, Part 1, Python (single card tracing) |
| 387 bytes | █▊ | <100 ms | ▏ | 2019, Day 22, Part 2, Python (reverse construction) |
| 337 bytes | █▋ | <100 ms | ▏ | 2019, Day 22, Part 2, Python (forward construction) |
| 690 bytes | ███▏ | ~150 ms | ▎ | 2019, Day 23, Part 1, Python (machines as classes) |
| 668 bytes | ███ | ~150 ms | ▎ | 2019, Day 23, Part 1, Python (machines as dictionaries) |
| 738 bytes | ███▍ | ~1 s | █ | 2019, Day 23, Part 2, Python |
| 269 bytes | █▎ | <100 ms | ▏ | 2019, Day 24, Part 1, Python |
| 551 bytes | ██▌ | ~600 ms | ▊ | 2019, Day 24, Part 2, Python |
| 1106 bytes | ████▉ | ~6 s | █▊ | 2019, Day 25, Part 1, Python |
| 79 bytes | ▌ | <100 ms | ▏ | 2020, Day 01, Part 1, Python |
| 98 bytes | ▌ | ~600 ms | ▊ | 2020, Day 01, Part 2, Python |
| 137 bytes | ▊ | <100 ms | ▏ | 2020, Day 02, Part 1, Python |
| 144 bytes | ▊ | <100 ms | ▏ | 2020, Day 02, Part 2, Python |
| 100 bytes | ▌ | <100 ms | ▏ | 2020, Day 03, Part 1, Python |
| 158 bytes | ▊ | <100 ms | ▏ | 2020, Day 03, Part 2, Python |
| 160 bytes | ▉ | <100 ms | ▏ | 2020, Day 04, Part 1, Python |
| 446 bytes | ██ | <100 ms | ▏ | 2020, Day 04, Part 2, Python |
| 99 bytes | ▌ | <100 ms | ▏ | 2020, Day 05, Part 1, Python |
| 142 bytes | ▊ | <100 ms | ▏ | 2020, Day 05, Part 2, Python |
| 77 bytes | ▌ | <100 ms | ▏ | 2020, Day 06, Part 1, Python |
| 133 bytes | ▊ | <100 ms | ▏ | 2020, Day 06, Part 2, Python |
| 202 bytes | █ | <100 ms | ▏ | 2020, Day 07, Part 1, Python |
| 212 bytes | █ | <100 ms | ▏ | 2020, Day 07, Part 2, Python |
| 157 bytes | ▊ | <100 ms | ▏ | 2020, Day 08, Part 1, Python |
| 258 bytes | █▎ | <100 ms | ▏ | 2020, Day 08, Part 2, Python |
| 144 bytes | ▊ | ~150 ms | ▎ | 2020, Day 09, Part 1, Python |
| 227 bytes | █▏ | ~250 ms | ▌ | 2020, Day 09, Part 2, Python |
| 104 bytes | ▋ | <100 ms | ▏ | 2020, Day 10, Part 1, Python |
| 137 bytes | ▊ | <100 ms | ▏ | 2020, Day 10, Part 2, Python |
| 347 bytes | █▋ | ~1.5 s | █▏ | 2020, Day 11, Part 1, Python (with 2D arrays) |
| 269 bytes | █▎ | ~2.5 s | █▍ | 2020, Day 11, Part 1, Python (with dictionaries) |
| 373 bytes | █▊ | ~3 s | █▍ | 2020, Day 11, Part 2, Python |
| 177 bytes | ▉ | <100 ms | ▏ | 2020, Day 12, Part 1, Python |
| 191 bytes | █ | <100 ms | ▏ | 2020, Day 12, Part 2, Python |
| 118 bytes | ▋ | <100 ms | ▏ | 2020, Day 13, Part 1, Python |
| 137 bytes | ▊ | <100 ms | ▏ | 2020, Day 13, Part 2, Python |
| 179 bytes | ▉ | <100 ms | ▏ | 2020, Day 14, Part 1, Python |
| 292 bytes | █▍ | ~150 ms | ▎ | 2020, Day 14, Part 2, Python |
| 112 bytes | ▋ | <100 ms | ▏ | 2020, Day 15, Part 1, Python |
| 116 bytes | ▋ | ~15 s | ██ | 2020, Day 15, Part 2, Python |
| 223 bytes | █▏ | ~1.5 s | █▏ | 2020, Day 15, Part 2, C |
| 204 bytes | █ | <100 ms | ▏ | 2020, Day 16, Part 1, Python |
| 528 bytes | ██▍ | <100 ms | ▏ | 2020, Day 16, Part 2, Python |
| 328 bytes | █▌ | <100 ms | ▏ | 2020, Day 17, Part 1, Python |
| 357 bytes | █▋ | ~1.5 s | █▏ | 2020, Day 17, Part 2, Python |
| 263 bytes | █▎ | <100 ms | ▏ | 2020, Day 18, Part 1, Python |
| 392 bytes | █▉ | <100 ms | ▏ | 2020, Day 18, Part 2, Python (manual parsing) |
| 236 bytes | █▏ | <100 ms | ▏ | 2020, Day 18, Part 2, Python (eval hack) |
| 431 bytes | ██ | <100 ms | ▏ | 2020, Day 19, Part 1, Python |
| 504 bytes | ██▎ | ~300 ms | ▌ | 2020, Day 19, Part 2, Python |
| 347 bytes | █▋ | <100 ms | ▏ | 2020, Day 20, Part 1, Python |
| 879 bytes | ███▉ | ~150 ms | ▎ | 2020, Day 20, Part 2, Python |
| 341 bytes | █▋ | <100 ms | ▏ | 2020, Day 21, Parts 1+2, Python |
| 217 bytes | █▏ | <100 ms | ▏ | 2020, Day 22, Part 1, Python |
| 358 bytes | █▋ | ~2.5 s | █▍ | 2020, Day 22, Part 2, Python |
| 197 bytes | █ | <100 ms | ▏ | 2020, Day 23, Part 1, Python |
| 244 bytes | █▏ | ~15 s | ██ | 2020, Day 23, Part 2, Python |
| 387 bytes | █▊ | ~600 ms | ▊ | 2020, Day 23, Part 2, C |
| 186 bytes | ▉ | <100 ms | ▏ | 2020, Day 24, Part 1, Python |
| 402 bytes | █▉ | ~2 s | █▎ | 2020, Day 24, Part 2, Python |
| 116 bytes | ▋ | ~5 s | █▋ | 2020, Day 25, Part 1, Python |
| 68 bytes | ▍ | <100 ms | ▏ | 2021, Day 01, Part 1, Python |
| 92 bytes | ▌ | <100 ms | ▏ | 2021, Day 01, Part 2, Python |
| 106 bytes | ▋ | <100 ms | ▏ | 2021, Day 02, Part 1, Python (using complex numbers) |
| 105 bytes | ▋ | <100 ms | ▏ | 2021, Day 02, Part 1, Python (using separate components) |
| 114 bytes | ▋ | <100 ms | ▏ | 2021, Day 02, Part 2, Python |
| 120 bytes | ▋ | <100 ms | ▏ | 2021, Day 03, Part 1, Python |
| 181 bytes | ▉ | <100 ms | ▏ | 2021, Day 03, Part 2, Python |
| 342 bytes | █▋ | <100 ms | ▏ | 2021, Day 04, Part 1, Python |
| 352 bytes | █▋ | <100 ms | ▏ | 2021, Day 04, Part 2, Python |
| 295 bytes | █▍ | <100 ms | ▏ | 2021, Day 05, Part 1, Python (coordinate list) |
| 275 bytes | █▍ | ~150 ms | ▎ | 2021, Day 05, Part 1, Python (using part 2 approach) |
| 253 bytes | █▎ | ~250 ms | ▌ | 2021, Day 05, Part 2, Python |
| 137 bytes | ▊ | <100 ms | ▏ | 2021, Day 06, Part 1, Python |
| 138 bytes | ▊ | <100 ms | ▏ | 2021, Day 06, Part 2, Python |
| 104 bytes | ▋ | ~150 ms | ▎ | 2021, Day 07, Part 1, Python |
| 128 bytes | ▋ | ~400 ms | ▋ | 2021, Day 07, Part 2, Python |
| 118 bytes | ▋ | <100 ms | ▏ | 2021, Day 08, Part 1, Python |
| 455 bytes | ██▏ | <100 ms | ▏ | 2021, Day 08, Part 2, Python |
| 185 bytes | ▉ | <100 ms | ▏ | 2021, Day 09, Part 1, Python |
| 328 bytes | █▌ | <100 ms | ▏ | 2021, Day 09, Part 2, Python (using low point seeds) |
| 311 bytes | █▌ | ~100 ms | ▏ | 2021, Day 09, Part 2, Python (using arbitrary seeds) |
| 208 bytes | █ | <100 ms | ▏ | 2021, Day 10, Part 1, Python |
| 251 bytes | █▎ | <100 ms | ▏ | 2021, Day 10, Part 2, Python |
| 321 bytes | █▌ | <100 ms | ▏ | 2021, Day 11, Part 1, Python |
| 321 bytes | █▌ | <100 ms | ▏ | 2021, Day 11, Part 2, Python |
| 220 bytes | █▏ | <100 ms | ▏ | 2021, Day 12, Part 1, Python |
| 258 bytes | █▎ | ~1 s | █ | 2021, Day 12, Part 2, Python |
| 237 bytes | █▏ | <100 ms | ▏ | 2021, Day 13, Part 1, Python |
| 286 bytes | █▍ | <100 ms | ▏ | 2021, Day 13, Part 2, Python |
| 233 bytes | █▏ | <100 ms | ▏ | 2021, Day 14, Part 1, Python |
| 375 bytes | █▊ | <100 ms | ▏ | 2021, Day 14, Part 2, Python |
| 199 bytes | █ | <100 ms | ▏ | 2021, Day 15, Part 1, Python |
| 376 bytes | █▊ | ~7 s | █▊ | 2021, Day 15, Part 2, Python (BFS) |
| 422 bytes | ██ | ~1 s | █ | 2021, Day 15, Part 2, Python (Dijkstra) |
| 297 bytes | █▍ | <100 ms | ▏ | 2021, Day 16, Part 1, Python |
| 438 bytes | ██ | <100 ms | ▏ | 2021, Day 16, Part 2, Python |
| 232 bytes | █▏ | ~500 ms | ▊ | 2021, Day 17, Part 1, Python |
| 216 bytes | █ | ~1 s | █ | 2021, Day 17, Part 2, Python |
| 560 bytes | ██▌ | ~350 ms | ▋ | 2021, Day 18, Part 1, Python |
| 622 bytes | ██▉ | ~4 s | █▌ | 2021, Day 18, Part 2, Python |
| 532 bytes | ██▍ | ~30 s | ██▎ | 2021, Day 19, Part 1, Python |
| 610 bytes | ██▊ | ~30 s | ██▎ | 2021, Day 19, Part 2, Python |
| 365 bytes | █▊ | <100 ms | ▏ | 2021, Day 20, Part 1, Python |
| 375 bytes | █▊ | ~10 s | █▉ | 2021, Day 20, Part 2, Python |
| 194 bytes | █ | <100 ms | ▏ | 2021, Day 21, Part 1, Python |
| 346 bytes | █▋ | ~250 ms | ▌ | 2021, Day 21, Part 2, Python |
| 254 bytes | █▎ | ~2 s | █▎ | 2021, Day 22, Part 1, Python |
| 425 bytes | ██ | ~40 m | ████ | 2021, Day 22, Part 2, Python (naive approach with coordinate compression) |
| 402 bytes | █▉ | ~15 s | ██ | 2021, Day 22, Part 2, Python (cube-splitting approach) |
| 982 bytes | ████▍ | ~2.5 s | █▍ | 2021, Day 23, Part 1, Python |
| 1000 bytes | ████▌ | ~2.5 s | █▍ | 2021, Day 23, Part 2, Python |
| 281 bytes | █▍ | ~10 s | █▉ | 2021, Day 24, Part 1, Python |
| 278 bytes | █▍ | ~1 s | █ | 2021, Day 24, Part 2, Python |
| 337 bytes | █▋ | ~20 m | ███▊ | 2021, Day 25, Part 1, Python (sets) |
| 361 bytes | █▋ | ~3 s | █▍ | 2021, Day 25, Part 1, Python (2D array) |
| 181 bytes | ▉ | ~350 ms | ▋ | 2021, Day 25, Part 1, Python (strings) |
| 82 bytes | ▌ | <100 ms | ▏ | 2022, Day 01, Part 1, Python |
| 95 bytes | ▌ | <100 ms | ▏ | 2022, Day 01, Part 2, Python |
| 256 bytes | █▎ | ~2 s | █▎ | 2022, Day 01, Parts 1+2, x86 DOS Assembly (assembled) |
| 101 bytes | ▌ | <100 ms | ▏ | 2022, Day 02, Part 1, Python |
| 91 bytes | ▌ | <100 ms | ▏ | 2022, Day 02, Part 2, Python |
| 122 bytes | ▋ | <100 ms | ▏ | 2022, Day 03, Part 1, Python |
| 128 bytes | ▋ | <100 ms | ▏ | 2022, Day 03, Part 2, Python |
| 118 bytes | ▋ | <100 ms | ▏ | 2022, Day 04, Part 1, Python |
| 103 bytes | ▋ | <100 ms | ▏ | 2022, Day 04, Part 2, Python |
| 282 bytes | █▍ | <100 ms | ▏ | 2022, Day 05, Part 1, Python |
| 276 bytes | █▍ | <100 ms | ▏ | 2022, Day 05, Part 2, Python |
| 86 bytes | ▌ | <100 ms | ▏ | 2022, Day 06, Part 1, Python |
| 88 bytes | ▌ | <100 ms | ▏ | 2022, Day 06, Part 2, Python |
| 261 bytes | █▎ | <100 ms | ▏ | 2022, Day 07, Parts 1+2, Python |
| 220 bytes | █▏ | <100 ms | ▏ | 2022, Day 08, Part 1, Python |
| 224 bytes | █▏ | <100 ms | ▏ | 2022, Day 08, Part 2, Python |
| 235 bytes | █▏ | <100 ms | ▏ | 2022, Day 09, Part 1, Python (coordinate tuples) |
| 296 bytes | █▍ | <100 ms | ▏ | 2022, Day 09, Part 2, Python (coordinate tuples) |
| 234 bytes | █▏ | <100 ms | ▏ | 2022, Day 09, Part 1, Python (complex numbers) |
| 279 bytes | █▍ | ~150 ms | ▎ | 2022, Day 09, Part 2, Python (complex numbers) |
| 127 bytes | ▋ | <100 ms | ▏ | 2022, Day 10, Part 1, Python |
| 164 bytes | ▉ | <100 ms | ▏ | 2022, Day 10, Part 2, Python |
| 325 bytes | █▌ | <100 ms | ▏ | 2022, Day 11, Part 1, Python |
| 343 bytes | █▋ | ~3.5 s | █▌ | 2022, Day 11, Part 2, Python |
| 312 bytes | █▌ | <100 ms | ▏ | 2022, Day 12, Parts 1+2, Python |
| 276 bytes | █▍ | <100 ms | ▏ | 2022, Day 13, Part 1, Python |
| 264 bytes | █▎ | <100 ms | ▏ | 2022, Day 13, Part 2, Python (with proper parsing and comparison) |
| 165 bytes | ▉ | <100 ms | ▏ | 2022, Day 13, Part 2, Python (shortcut, list-based) |
| 137 bytes | ▊ | <100 ms | ▏ | 2022, Day 13, Part 2, Python (shortcut, string-based) |
| 332 bytes | █▌ | <100 ms | ▏ | 2022, Day 14, Part 1, Python (complex numbers) |
| 351 bytes | █▋ | ~2 s | █▎ | 2022, Day 14, Part 2, Python (complex numbers) |
| 334 bytes | █▋ | <100 ms | ▏ | 2022, Day 14, Part 1, Python (coordinate tuples) |
| 357 bytes | █▋ | ~1.5 s | █▏ | 2022, Day 14, Part 2, Python (coordinate tuples) |
| 314 bytes | █▌ | <100 ms | ▏ | 2022, Day 14, Part 2, Python (sweep approach) |
| 200 bytes | █ | ~1 s | █ | 2022, Day 15, Part 1, Python (set of coordinates) |
| 379 bytes | █▊ | ~3 m | ███ | 2022, Day 15, Part 2, Python (coordinate ranges) |
| 340 bytes | █▋ | ~1.5 s | █▏ | 2022, Day 15, Part 2, Python (heuristics and boundary intersection) |
| 340 bytes | █▋ | ~2.5 s | █▍ | 2022, Day 16, Part 1, Python (DFS only) |
| 395 bytes | █▉ | ~1.5 m | ██▊ | 2022, Day 16, Part 2, Python (DFS only) |
| 507 bytes | ██▍ | ~20 s | ██▏ | 2022, Day 16, Part 2, Python (BFS+DFS) |
| 366 bytes | █▊ | <100 ms | ▏ | 2022, Day 17, Part 1, Python |
| 468 bytes | ██▏ | ~350 ms | ▋ | 2022, Day 17, Part 2, Python |
| 153 bytes | ▊ | <100 ms | ▏ | 2022, Day 18, Part 1, Python |
| 262 bytes | █▎ | ~150 ms | ▎ | 2022, Day 18, Part 2, Python |
| 510 bytes | ██▍ | ~7 s | █▊ | 2022, Day 19, Part 1, Python |
| 511 bytes | ██▍ | ~30 s | ██▎ | 2022, Day 19, Part 2, Python |
| 223 bytes | █▏ | ~2 s | █▎ | 2022, Day 20, Part 1, Python (nested loop) |
| 266 bytes | █▎ | ~20 s | ██▏ | 2022, Day 20, Part 2, Python (nested loop) |
| 241 bytes | █▏ | ~150 ms | ▎ | 2022, Day 20, Part 1, Python (linked list) |
| 277 bytes | █▍ | ~2 s | █▎ | 2022, Day 20, Part 2, Python (linked list) |
| 170 bytes | ▉ | <100 ms | ▏ | 2022, Day 20, Part 1, Python (order table) |
| 189 bytes | █ | ~1.5 s | █▏ | 2022, Day 20, Part 2, Python (order table) |
| 220 bytes | █▏ | ~1.5 s | █▏ | 2022, Day 20, Parts 1+2, Python (order table) |
| 614 bytes | ██▊ | ~600 ms | ▊ | 2022, Day 20, Parts 1+2, C (linked list) |
| 519 bytes | ██▍ | ~200 ms | ▍ | 2022, Day 20, Parts 1+2, C (order table) |
| 250 bytes | █▎ | <100 ms | ▏ | 2022, Day 21, Part 1, Python |
| 472 bytes | ██▏ | <100 ms | ▏ | 2022, Day 21, Part 2, Python (equation inversion) |
| 492 bytes | ██▎ | <100 ms | ▏ | 2022, Day 21, Parts 1+2, Python (equation inversion) |
| 318 bytes | █▌ | <100 ms | ▏ | 2022, Day 21, Part 2, Python (linear solver) |
| 330 bytes | █▌ | <100 ms | ▏ | 2022, Day 21, Parts 1+2, Python (linear solver) |
| 106 bytes | ▋ | ~500 ms | ▊ | 2022, Day 21, Part 1, Python (evil exec hackery) |
| 356 bytes | █▋ | <100 ms | ▏ | 2022, Day 22, Part 1, Python |
| 649 bytes | ██▉ | ~150 ms | ▎ | 2022, Day 22, Part 2, Python (automatic portals) |
| 557 bytes | ██▌ | <100 ms | ▏ | 2022, Day 22, Part 2, Python (hard-coded portals) |
| 424 bytes | ██ | ~150 ms | ▎ | 2022, Day 23, Part 1, Python |
| 333 bytes | █▋ | ~15 s | ██ | 2022, Day 23, Part 2, Python |
| 441 bytes | ██ | ~15 s | ██ | 2022, Day 23, Parts 1+2, Python |
| 395 bytes | █▉ | ~500 ms | ▊ | 2022, Day 24, Part 1, Python |
| 449 bytes | ██▏ | ~1.5 s | █▏ | 2022, Day 24, Part 2, Python |
| 466 bytes | ██▏ | ~1.5 s | █▏ | 2022, Day 24, Parts 1+2, Python |
| 169 bytes | ▉ | <100 ms | ▏ | 2022, Day 25, Part 1, Python (with conversions) |
| 199 bytes | █ | <100 ms | ▏ | 2022, Day 25, Part 1, Python (direct addition) |
| 88 bytes | ▌ | <100 ms | ▏ | 2023, Day 01, Part 1, Python |
| 246 bytes | █▎ | <100 ms | ▏ | 2023, Day 01, Part 2, Python |
| 179 bytes | ▉ | <100 ms | ▏ | 2023, Day 02, Part 1, Python |
| 184 bytes | ▉ | <100 ms | ▏ | 2023, Day 02, Part 2, Python |
| 294 bytes | █▍ | <100 ms | ▏ | 2023, Day 03, Part 1, Python (complex number dictionary) |
| 332 bytes | █▌ | <100 ms | ▏ | 2023, Day 03, Part 2, Python (complex number dictionary) |
| 355 bytes | █▋ | ~800 ms | ▉ | 2023, Day 03, Part 1, Python (list of spans) |
| 399 bytes | █▉ | ~400 ms | ▋ | 2023, Day 03, Part 2, Python (list of spans) |
| 114 bytes | ▋ | <100 ms | ▏ | 2023, Day 04, Part 1, Python |
| 175 bytes | ▉ | <100 ms | ▏ | 2023, Day 04, Part 2, Python |
| 230 bytes | █▏ | <100 ms | ▏ | 2023, Day 05, Part 1, Python |
| 423 bytes | ██ | <100 ms | ▏ | 2023, Day 05, Part 2, Python (interval processing) |
| 116 bytes | ▋ | <100 ms | ▏ | 2023, Day 06, Part 1, Python |
| 99 bytes | ▌ | ~5 s | █▋ | 2023, Day 06, Part 2, Python (brute force) |
| 105 bytes | ▋ | <100 ms | ▏ | 2023, Day 06, Part 2, Python (quadratic equation solving) |
| 274 bytes | █▎ | <100 ms | ▏ | 2023, Day 07, Part 1, Python |
| 421 bytes | ██ | <100 ms | ▏ | 2023, Day 07, Part 2, Python |
| 202 bytes | █ | <100 ms | ▏ | 2023, Day 08, Part 1, Python |
| 238 bytes | █▏ | <100 ms | ▏ | 2023, Day 08, Part 2, Python |
| 154 bytes | ▊ | <100 ms | ▏ | 2023, Day 09, Part 1, Python |
| 180 bytes | ▉ | <100 ms | ▏ | 2023, Day 09, Part 2, Python |
| 343 bytes | █▋ | <100 ms | ▏ | 2023, Day 10, Part 1, Python |
| 529 bytes | ██▍ | ~300 ms | ▌ | 2023, Day 10, Part 2, Python (flood fill) |
| 396 bytes | █▉ | <100 ms | ▏ | 2023, Day 10, Part 2, Python (shoelace/Pick) |
| 310 bytes | █▌ | <100 ms | ▏ | 2023, Day 11, Part 1, Python (duplicating rows and columns) |
| 307 bytes | █▌ | <100 ms | ▏ | 2023, Day 11, Part 1, Python (coordinate translation) |
| 315 bytes | █▌ | <100 ms | ▏ | 2023, Day 11, Part 2, Python (coordinate translation) |
| 365 bytes | █▊ | ~20 s | ██▏ | 2023, Day 12, Part 1, Python (brute force) |
| 323 bytes | █▌ | ~100 ms | ▏ | 2023, Day 12, Part 1, Python (approach from part 2) |
| 339 bytes | █▋ | ~3 s | █▍ | 2023, Day 12, Part 2, Python |
| 211 bytes | █ | <100 ms | ▏ | 2023, Day 13, Part 1, Python |
| 260 bytes | █▎ | <100 ms | ▏ | 2023, Day 13, Part 2, Python |
| 184 bytes | ▉ | <100 ms | ▏ | 2023, Day 14, Part 1, Python (coordinate tuples) |
| 382 bytes | █▊ | ~1 s | █ | 2023, Day 14, Part 2, Python (coordinate tuples) |
| 185 bytes | ▉ | <100 ms | ▏ | 2023, Day 14, Part 1, Python (complex numbers) |
| 374 bytes | █▊ | ~1.5 s | █▏ | 2023, Day 14, Part 2, Python (complex numbers) |
| 201 bytes | █ | <100 ms | ▏ | 2023, Day 14, Part 1, Python (string processing) |
| 296 bytes | █▍ | ~500 ms | ▊ | 2023, Day 14, Part 2, Python (string processing) |
| 110 bytes | ▋ | <100 ms | ▏ | 2023, Day 15, Part 1, Python |
| 290 bytes | █▍ | <100 ms | ▏ | 2023, Day 15, Part 2, Python |
| 356 bytes | █▋ | <100 ms | ▏ | 2023, Day 16, Part 1, Python |
| 466 bytes | ██▏ | ~10 s | █▉ | 2023, Day 16, Part 2, Python |
| 350 bytes | █▋ | ~1.5 s | █▏ | 2023, Day 17, Part 1, Python |
| 367 bytes | █▊ | ~5 s | █▋ | 2023, Day 17, Part 2, Python |
| 340 bytes | █▋ | ~150 ms | ▎ | 2023, Day 18, Part 1, Python (BFS filling) |
| 699 bytes | ███▏ | ~400 ms | ▋ | 2023, Day 18, Part 2, Python (BFS filling + coordinate compression) |
| 176 bytes | ▉ | <100 ms | ▏ | 2023, Day 18, Part 1, Python (shoelace/Pick) |
| 174 bytes | ▉ | <100 ms | ▏ | 2023, Day 18, Part 2, Python (shoelace/Pick) |
| 434 bytes | ██ | <100 ms | ▏ | 2023, Day 19, Part 1, Python |
| 525 bytes | ██▍ | <100 ms | ▏ | 2023, Day 19, Part 2, Python |
| 476 bytes | ██▏ | ~100 ms | ▏ | 2023, Day 20, Part 1, Python |
| 515 bytes | ██▍ | ~350 ms | ▋ | 2023, Day 20, Part 2, Python (simulation) |
| 326 bytes | █▌ | <100 ms | ▏ | 2023, Day 20, Part 2, Python (input graph parsing) |
| 191 bytes | █ | <100 ms | ▏ | 2023, Day 21, Part 1, Python |
| 329 bytes | █▌ | ~20 s | ██▏ | 2023, Day 21, Part 2, Python (full simulation) |
| 358 bytes | █▋ | ~600 ms | ▊ | 2023, Day 21, Part 2, Python (edge only) |
| 498 bytes | ██▎ | ~800 ms | ▉ | 2023, Day 22, Part 1, Python |
| 552 bytes | ██▌ | ~1 s | █ | 2023, Day 22, Part 2, Python |
| 417 bytes | █▉ | ~400 ms | ▋ | 2023, Day 23, Part 1, Python (direct maze DFS) |
| 425 bytes | ██ | ~60 s | ██▋ | 2023, Day 23, Part 2, Python (graph DFS using sets) |
| 503 bytes | ██▎ | ~35 s | ██▍ | 2023, Day 23, Part 2, Python (graph DFS using bitfields) |
| 789 bytes | ███▌ | ~700 ms | ▉ | 2023, Day 23, Part 2, Python (generating and running C code) |
| 265 bytes | █▎ | ~100 ms | ▏ | 2023, Day 24, Part 1, Python |
| 601 bytes | ██▊ | <100 ms | ▏ | 2023, Day 24, Part 2, Python (single hailstone triple) |
| 674 bytes | ███ | <100 ms | ▏ | 2023, Day 24, Part 2, Python (better numerical stability) |
| 452 bytes | ██▏ | ~5 s | █▋ | 2023, Day 25, Part 1, Python |
| 102 bytes | ▋ | <100 ms | ▏ | 2024, Day 01, Part 1, Python |
| 92 bytes | ▌ | <100 ms | ▏ | 2024, Day 01, Part 2, Python |
| 138 bytes | ▊ | <100 ms | ▏ | 2024, Day 02, Part 1, Python |
| 193 bytes | █ | <100 ms | ▏ | 2024, Day 02, Part 2, Python |
| 105 bytes | ▋ | <100 ms | ▏ | 2024, Day 03, Part 1, Python |
| 149 bytes | ▊ | <100 ms | ▏ | 2024, Day 03, Part 2, Python |
| 180 bytes | ▉ | ~300 ms | ▌ | 2024, Day 04, Part 1, Python |
| 172 bytes | ▉ | <100 ms | ▏ | 2024, Day 04, Part 2, Python |
| 199 bytes | █ | ~150 ms | ▎ | 2024, Day 05, Part 1, Python |
| 283 bytes | █▍ | ~300 ms | ▌ | 2024, Day 05, Part 2, Python |
| 299 bytes | █▍ | ~300 ms | ▌ | 2024, Day 05, Parts 1+2, Python |
| 193 bytes | █ | <100 ms | ▏ | 2024, Day 06, Part 1, Python |
| 318 bytes | █▌ | ~25 s | ██▎ | 2024, Day 06, Part 2, Python |
| 350 bytes | █▋ | ~25 s | ██▎ | 2024, Day 06, Parts 1+2, Python |
| 148 bytes | ▊ | ~250 ms | ▌ | 2024, Day 07, Part 1, Python |
| 182 bytes | ▉ | ~15 s | ██ | 2024, Day 07, Part 2, Python (naive) |
| 209 bytes | █ | ~3.5 s | █▌ | 2024, Day 07, Part 2, Python (optimized) |
| 247 bytes | █▎ | <100 ms | ▏ | 2024, Day 08, Part 1, Python |
| 233 bytes | █▏ | <100 ms | ▏ | 2024, Day 08, Part 2, Python |
| 195 bytes | █ | <100 ms | ▏ | 2024, Day 09, Part 1, Python |
| 246 bytes | █▎ | ~15 s | ██ | 2024, Day 09, Part 2, Python (minimum size) |
| 335 bytes | █▋ | <100 ms | ▏ | 2024, Day 09, Part 2, Python (speed-optimized) |
| 219 bytes | █▏ | <100 ms | ▏ | 2024, Day 10, Part 1, Python |
| 202 bytes | █ | <100 ms | ▏ | 2024, Day 10, Part 2, Python |
| 179 bytes | ▉ | ~350 ms | ▋ | 2024, Day 11, Part 1, Python |
| 239 bytes | █▏ | ~200 ms | ▍ | 2024, Day 11, Part 2, Python (type-and-frequency) |
| 230 bytes | █▏ | ~200 ms | ▍ | 2024, Day 11, Part 2, Python (DFS + memoization) |
| 268 bytes | █▎ | ~500 ms | ▊ | 2024, Day 12, Part 1, Python |
| 325 bytes | █▌ | ~300 ms | ▌ | 2024, Day 12, Part 2, Python |
| 182 bytes | ▉ | ~1 s | █ | 2024, Day 13, Part 1, Python |
| 210 bytes | █ | <100 ms | ▏ | 2024, Day 13, Part 2, Python |
| 198 bytes | █ | <100 ms | ▏ | 2024, Day 14, Part 1, Python |
| 178 bytes | ▉ | ~1.5 s | █▏ | 2024, Day 14, Part 2, Python (Unique Positions) |
| 222 bytes | █▏ | ~15 s | ██ | 2024, Day 14, Part 2, Python (Run of Adjacent Spots) |
| 235 bytes | █▏ | ~2.5 s | █▍ | 2024, Day 14, Part 2, Python (Minimum Variance) |
| 265 bytes | █▎ | <100 ms | ▏ | 2024, Day 14, Part 2, Python (Independent Axis Minimum Variance) |
| 335 bytes | █▋ | ~150 ms | ▎ | 2024, Day 15, Part 1, Python |
| 436 bytes | ██ | ~600 ms | ▊ | 2024, Day 15, Part 2, Python |
| 276 bytes | █▍ | ~2 s | █▎ | 2024, Day 16, Part 1, Python |
| 347 bytes | █▋ | ~3.5 s | █▌ | 2024, Day 16, Part 2, Python |
| 359 bytes | █▋ | ~3.5 s | █▌ | 2024, Day 16, Parts 1+2, Python |
| 279 bytes | █▍ | <100 ms | ▏ | 2024, Day 17, Part 1, Python |
| 201 bytes | █ | <100 ms | ▏ | 2024, Day 17, Part 2, Python (puzzle input specific) |
| 391 bytes | █▉ | <100 ms | ▏ | 2024, Day 17, Part 2, Python (generic) |
| 251 bytes | █▎ | <100 ms | ▏ | 2024, Day 18, Part 1, Python |
| 262 bytes | █▎ | ~10 s | █▉ | 2024, Day 18, Part 2, Python (brute force) |
| 317 bytes | █▌ | <100 ms | ▏ | 2024, Day 18, Part 2, Python (binary search) |
| 125 bytes | ▋ | <100 ms | ▏ | 2024, Day 19, Part 1, Python |
| 206 bytes | █ | ~700 ms | ▉ | 2024, Day 19, Part 2, Python |
| 283 bytes | █▍ | ~6 s | █▊ | 2024, Day 20, Part 1, Python |
| 362 bytes | █▊ | ~10 s | █▉ | 2024, Day 20, Part 2, Python |
| 478 bytes | ██▎ | <100 ms | ▏ | 2024, Day 21, Part 1, Python |
| 510 bytes | ██▍ | <100 ms | ▏ | 2024, Day 21, Part 2, Python |
| 120 bytes | ▋ | ~2.5 s | █▍ | 2024, Day 22, Part 1, Python |
| 238 bytes | █▏ | ~10 s | █▉ | 2024, Day 22, Part 2, Python |
| 451 bytes | ██▏ | ~150 ms | ▎ | 2024, Day 22, Parts 1+2, C |
| 257 bytes | █▎ | <100 ms | ▏ | 2024, Day 23, Part 1, Python |
| 241 bytes | █▏ | <100 ms | ▏ | 2024, Day 23, Part 2, Python |
| 270 bytes | █▎ | <100 ms | ▏ | 2024, Day 24, Part 1, Python |
| 401 bytes | █▉ | <100 ms | ▏ | 2024, Day 24, Part 2, Python |
| 165 bytes | ▉ | ~250 ms | ▌ | 2024, Day 25, Part 1, Python |
| 83 bytes | ▌ | <100 ms | ▏ | 2025, Day 01, Part 1, Python |
| 91 bytes | ▌ | ~150 ms | ▎ | 2025, Day 01, Part 2, Python |
| 152 bytes | ▊ | ~1.5 s | █▏ | 2025, Day 02, Part 1, Python |
| 153 bytes | ▊ | ~2 s | █▎ | 2025, Day 02, Part 2, Python (regular expressions) |
| 150 bytes | ▊ | ~800 ms | ▉ | 2025, Day 02, Part 2, Python (string maninpulation) |
| 91 bytes | ▌ | ~250 ms | ▌ | 2025, Day 03, Part 1, Python (brute force) |
| 151 bytes | ▊ | <100 ms | ▏ | 2025, Day 03, Part 2, Python (greedy algorithm) |
| 191 bytes | █ | ~300 ms | ▌ | 2025, Day 03, Part 2, Python (DFS+memoization) |
| 205 bytes | █ | ~300 ms | ▌ | 2025, Day 03, Parts 1+2, Python (DFS+memoization) |
| 168 bytes | ▉ | <100 ms | ▏ | 2025, Day 04, Part 1, Python |
| 203 bytes | █ | ~700 ms | ▉ | 2025, Day 04, Part 2, Python |
| 136 bytes | ▊ | <100 ms | ▏ | 2025, Day 05, Part 1, Python |
| 152 bytes | ▊ | <100 ms | ▏ | 2025, Day 05, Part 2, Python |
| 89 bytes | ▌ | <100 ms | ▏ | 2025, Day 06, Part 1, Python (using eval) |
| 131 bytes | ▊ | <100 ms | ▏ | 2025, Day 06, Part 1, Python (safe) |
| 155 bytes | ▊ | <100 ms | ▏ | 2025, Day 06, Part 2, Python (using eval) |
| 187 bytes | ▉ | <100 ms | ▏ | 2025, Day 06, Part 2, Python (safe) |
| 145 bytes | ▊ | <100 ms | ▏ | 2025, Day 07, Part 1, Python |
| 162 bytes | ▉ | <100 ms | ▏ | 2025, Day 07, Part 2, Python (dictionary) |
| 155 bytes | ▊ | <100 ms | ▏ | 2025, Day 07, Part 2, Python (list) |
| 290 bytes | █▍ | ~1.5 s | █▏ | 2025, Day 08, Part 1, Python |
| 255 bytes | █▎ | ~2.5 s | █▍ | 2025, Day 08, Part 2, Python |
| 135 bytes | ▊ | <100 ms | ▏ | 2025, Day 09, Part 1, Python |
| 343 bytes | █▋ | ~25 s | ██▎ | 2025, Day 09, Part 2, Python |
| 303 bytes | █▍ | ~400 ms | ▋ | 2025, Day 10, Part 1, Python |
| 240 bytes | █▏ | ~600 ms | ▊ | 2025, Day 10, Part 2, Python (using SciPy) |
| 1046 bytes | ████▋ | ~1.5 s | █▏ | 2025, Day 10, Part 2, Python (handwritten algebra) |
| 131 bytes | ▊ | <100 ms | ▏ | 2025, Day 11, Part 1, Python |
| 208 bytes | █ | <100 ms | ▏ | 2025, Day 11, Part 2, Python (tagging) |
| 247 bytes | █▎ | <100 ms | ▏ | 2025, Day 11, Part 2, Python (partial paths) |
| 198 bytes | █ | <100 ms | ▏ | 2025, Day 12, Part 1, Python |
| Size | Day, Part, Solution | |
|---|---|---|
| 1128 bytes | █████ | 2019, Day 17, Part 2, Python |
| 1106 bytes | ████▉ | 2019, Day 25, Part 1, Python |
| 1071 bytes | ████▊ | 2018, Day 15, Parts 1+2, Python |
| 1046 bytes | ████▋ | 2025, Day 10, Part 2, Python (handwritten algebra) |
| 1000 bytes | ████▌ | 2021, Day 23, Part 2, Python |
| 982 bytes | ████▍ | 2021, Day 23, Part 1, Python |
| 879 bytes | ███▉ | 2020, Day 20, Part 2, Python |
| 842 bytes | ███▊ | 2019, Day 18, Part 2, Python |
| 839 bytes | ███▊ | 2018, Day 24, Parts 1+2, Python |
| 812 bytes | ███▋ | 2018, Day 16, Part 2, Python |
| 789 bytes | ███▌ | 2023, Day 23, Part 2, Python (generating and running C code) |
| 773 bytes | ███▌ | 2019, Day 15, Part 2, Python |
| 738 bytes | ███▍ | 2019, Day 23, Part 2, Python |
| 725 bytes | ███▎ | 2018, Day 17, Parts 1+2, Python |
| 704 bytes | ███▏ | 2018, Day 19, Part 2, Python (host computation) |
| 701 bytes | ███▏ | 2016, Day 11, Part 2, Python (with canonicalization) |
| 701 bytes | ███▏ | 2019, Day 10, Part 2, Python (with visualization) |
| 699 bytes | ███▏ | 2023, Day 18, Part 2, Python (BFS filling + coordinate compression) |
| 690 bytes | ███▏ | 2019, Day 23, Part 1, Python (machines as classes) |
| 674 bytes | ███ | 2023, Day 24, Part 2, Python (better numerical stability) |
| 668 bytes | ███ | 2019, Day 23, Part 1, Python (machines as dictionaries) |
| 667 bytes | ███ | 2019, Day 20, Part 2, Python |
| 666 bytes | ███ | 2019, Day 18, Part 1, Python |
| 665 bytes | ███ | 2019, Day 15, Part 1, Python |
| 661 bytes | ███ | 2018, Day 19, Part 1, Python (plain simulation) |
| 649 bytes | ██▉ | 2022, Day 22, Part 2, Python (automatic portals) |
| 640 bytes | ██▉ | 2016, Day 11, Part 1, Python (without canonicalization) |
| 631 bytes | ██▉ | 2018, Day 16, Part 1, Python |
| 622 bytes | ██▉ | 2021, Day 18, Part 2, Python |
| 614 bytes | ██▊ | 2018, Day 22, Part 2, Python (simple) |
| 614 bytes | ██▊ | 2022, Day 20, Parts 1+2, C (linked list) |
| 610 bytes | ██▊ | 2021, Day 19, Part 2, Python |
| 603 bytes | ██▊ | 2019, Day 07, Part 2, Python |
| 601 bytes | ██▊ | 2018, Day 22, Part 2, Python (optimized) |
| 601 bytes | ██▊ | 2023, Day 24, Part 2, Python (single hailstone triple) |
| 586 bytes | ██▋ | 2017, Day 14, Part 2, Python |
| 575 bytes | ██▋ | 2019, Day 10, Part 2, Python |
| 569 bytes | ██▋ | 2018, Day 13, Part 2, Python |
| 562 bytes | ██▌ | 2018, Day 18, Part 2, Python |
| 561 bytes | ██▌ | 2019, Day 11, Part 2, Python |
| 561 bytes | ██▌ | 2019, Day 19, Part 2, Python (fast search with slope estimation) |
| 560 bytes | ██▌ | 2021, Day 18, Part 1, Python |
| 557 bytes | ██▌ | 2022, Day 22, Part 2, Python (hard-coded portals) |
| 552 bytes | ██▌ | 2023, Day 22, Part 2, Python |
| 551 bytes | ██▌ | 2019, Day 24, Part 2, Python |
| 548 bytes | ██▌ | 2017, Day 18, Part 2, Python |
| 547 bytes | ██▌ | 2015, Day 22, Part 2, Python |
| 546 bytes | ██▌ | 2019, Day 17, Part 1, Python |
| 540 bytes | ██▌ | 2019, Day 21, Part 2, Python |
| 532 bytes | ██▍ | 2021, Day 19, Part 1, Python |
| 530 bytes | ██▍ | 2015, Day 22, Part 1, Python |
| 529 bytes | ██▍ | 2023, Day 10, Part 2, Python (flood fill) |
| 528 bytes | ██▍ | 2020, Day 16, Part 2, Python |
| 525 bytes | ██▍ | 2023, Day 19, Part 2, Python |
| 519 bytes | ██▍ | 2019, Day 19, Part 2, Python (edge walking) |
| 519 bytes | ██▍ | 2022, Day 20, Parts 1+2, C (order table) |
| 517 bytes | ██▍ | 2019, Day 13, Part 2, Python |
| 515 bytes | ██▍ | 2023, Day 20, Part 2, Python (simulation) |
| 511 bytes | ██▍ | 2022, Day 19, Part 2, Python |
| 510 bytes | ██▍ | 2022, Day 19, Part 1, Python |
| 510 bytes | ██▍ | 2024, Day 21, Part 2, Python |
| 507 bytes | ██▍ | 2022, Day 16, Part 2, Python (BFS+DFS) |
| 504 bytes | ██▎ | 2020, Day 19, Part 2, Python |
| 503 bytes | ██▎ | 2023, Day 23, Part 2, Python (graph DFS using bitfields) |
| 499 bytes | ██▎ | 2019, Day 11, Part 1, Python |
| 498 bytes | ██▎ | 2023, Day 22, Part 1, Python |
| 494 bytes | ██▎ | 2019, Day 19, Part 1, Python (brute force) |
| 492 bytes | ██▎ | 2022, Day 21, Parts 1+2, Python (equation inversion) |
| 488 bytes | ██▎ | 2019, Day 21, Part 1, Python |
| 480 bytes | ██▎ | 2018, Day 13, Part 1, Python |
| 478 bytes | ██▎ | 2024, Day 21, Part 1, Python |
| 476 bytes | ██▏ | 2023, Day 20, Part 1, Python |
| 473 bytes | ██▏ | 2019, Day 12, Part 2, Python (derived from part 1 solution) |
| 472 bytes | ██▏ | 2022, Day 21, Part 2, Python (equation inversion) |
| 468 bytes | ██▏ | 2022, Day 17, Part 2, Python |
| 466 bytes | ██▏ | 2022, Day 24, Parts 1+2, Python |
| 466 bytes | ██▏ | 2023, Day 16, Part 2, Python |
| 462 bytes | ██▏ | 2019, Day 07, Part 1, Python |
| 457 bytes | ██▏ | 2018, Day 18, Part 1, Python |
| 455 bytes | ██▏ | 2021, Day 08, Part 2, Python |
| 452 bytes | ██▏ | 2017, Day 21, Parts 1+2, Python |
| 452 bytes | ██▏ | 2023, Day 25, Part 1, Python |
| 451 bytes | ██▏ | 2024, Day 22, Parts 1+2, C |
| 449 bytes | ██▏ | 2022, Day 24, Part 2, Python |
| 446 bytes | ██ | 2020, Day 04, Part 2, Python |
| 442 bytes | ██ | 2018, Day 11, Part 2, C (optimized pre-summed matrix) |
| 441 bytes | ██ | 2022, Day 23, Parts 1+2, Python |
| 438 bytes | ██ | 2021, Day 16, Part 2, Python |
| 436 bytes | ██ | 2024, Day 15, Part 2, Python |
| 434 bytes | ██ | 2023, Day 19, Part 1, Python |
| 432 bytes | ██ | 2019, Day 13, Part 1, Python |
| 432 bytes | ██ | 2019, Day 20, Part 1, Python |
| 431 bytes | ██ | 2020, Day 19, Part 1, Python |
| 427 bytes | ██ | 2018, Day 09, Part 2, C (CDLL) (including compilation) |
| 425 bytes | ██ | 2016, Day 24, Part 2, Python |
| 425 bytes | ██ | 2021, Day 22, Part 2, Python (naive approach with coordinate compression) |
| 425 bytes | ██ | 2023, Day 23, Part 2, Python (graph DFS using sets) |
| 424 bytes | ██ | 2022, Day 23, Part 1, Python |
| 423 bytes | ██ | 2018, Day 20, Parts 1+2, Python (correct) |
| 423 bytes | ██ | 2023, Day 05, Part 2, Python (interval processing) |
| 422 bytes | ██ | 2021, Day 15, Part 2, Python (Dijkstra) |
| 421 bytes | ██ | 2023, Day 07, Part 2, Python |
| 419 bytes | █▉ | 2015, Day 07, Parts 1+2, Python |
| 419 bytes | █▉ | 2016, Day 24, Part 1, Python |
| 418 bytes | █▉ | 2019, Day 09, Part 1, Python |
| 418 bytes | █▉ | 2019, Day 09, Part 2, Python |
| 417 bytes | █▉ | 2016, Day 21, Part 2, Python |
| 417 bytes | █▉ | 2023, Day 23, Part 1, Python (direct maze DFS) |
| 410 bytes | █▉ | 2016, Day 21, Part 1, Python |
| 408 bytes | █▉ | 2018, Day 07, Part 2, Python |
| 402 bytes | █▉ | 2020, Day 24, Part 2, Python |
| 402 bytes | █▉ | 2021, Day 22, Part 2, Python (cube-splitting approach) |
| 401 bytes | █▉ | 2024, Day 24, Part 2, Python |
| 399 bytes | █▉ | 2023, Day 03, Part 2, Python (list of spans) |
| 396 bytes | █▉ | 2023, Day 10, Part 2, Python (shoelace/Pick) |
| 395 bytes | █▉ | 2022, Day 16, Part 2, Python (DFS only) |
| 395 bytes | █▉ | 2022, Day 24, Part 1, Python |
| 392 bytes | █▉ | 2020, Day 18, Part 2, Python (manual parsing) |
| 391 bytes | █▉ | 2024, Day 17, Part 2, Python (generic) |
| 387 bytes | █▊ | 2019, Day 22, Part 2, Python (reverse construction) |
| 387 bytes | █▊ | 2020, Day 23, Part 2, C |
| 383 bytes | █▊ | 2017, Day 07, Part 2, Python |
| 382 bytes | █▊ | 2023, Day 14, Part 2, Python (coordinate tuples) |
| 381 bytes | █▊ | 2018, Day 11, Part 2, C (SAT) |
| 379 bytes | █▊ | 2022, Day 15, Part 2, Python (coordinate ranges) |
| 377 bytes | █▊ | 2019, Day 14, Part 2, Python |
| 376 bytes | █▊ | 2021, Day 15, Part 2, Python (BFS) |
| 375 bytes | █▊ | 2021, Day 14, Part 2, Python |
| 375 bytes | █▊ | 2021, Day 20, Part 2, Python |
| 374 bytes | █▊ | 2023, Day 14, Part 2, Python (complex numbers) |
| 373 bytes | █▊ | 2020, Day 11, Part 2, Python |
| 371 bytes | █▊ | 2019, Day 10, Part 1, Python |
| 368 bytes | █▊ | 2018, Day 20, Parts 1+2, Python (shortcut) |
| 368 bytes | █▊ | 2019, Day 12, Part 2, Python (full axis separation) |
| 367 bytes | █▊ | 2016, Day 23, Part 1, Python |
| 367 bytes | █▊ | 2023, Day 17, Part 2, Python |
| 366 bytes | █▊ | 2022, Day 17, Part 1, Python |
| 365 bytes | █▊ | 2018, Day 10, Parts 1+2, Python |
| 365 bytes | █▊ | 2021, Day 20, Part 1, Python |
| 365 bytes | █▊ | 2023, Day 12, Part 1, Python (brute force) |
| 362 bytes | █▊ | 2024, Day 20, Part 2, Python |
| 361 bytes | █▋ | 2018, Day 11, Part 2, Python (optimized pre-summed matrix) |
| 361 bytes | █▋ | 2021, Day 25, Part 1, Python (2D array) |
| 359 bytes | █▋ | 2018, Day 04, Part 1, Python |
| 359 bytes | █▋ | 2018, Day 04, Part 2, Python |
| 359 bytes | █▋ | 2024, Day 16, Parts 1+2, Python |
| 358 bytes | █▋ | 2020, Day 22, Part 2, Python |
| 358 bytes | █▋ | 2023, Day 21, Part 2, Python (edge only) |
| 357 bytes | █▋ | 2018, Day 06, Part 1, Python |
| 357 bytes | █▋ | 2020, Day 17, Part 2, Python |
| 357 bytes | █▋ | 2022, Day 14, Part 2, Python (coordinate tuples) |
| 356 bytes | █▋ | 2018, Day 23, Part 2, Python |
| 356 bytes | █▋ | 2022, Day 22, Part 1, Python |
| 356 bytes | █▋ | 2023, Day 16, Part 1, Python |
| 355 bytes | █▋ | 2017, Day 18, Part 1, Python |
| 355 bytes | █▋ | 2023, Day 03, Part 1, Python (list of spans) |
| 352 bytes | █▋ | 2021, Day 04, Part 2, Python |
| 351 bytes | █▋ | 2022, Day 14, Part 2, Python (complex numbers) |
| 350 bytes | █▋ | 2015, Day 18, Part 2, Python |
| 350 bytes | █▋ | 2023, Day 17, Part 1, Python |
| 350 bytes | █▋ | 2024, Day 06, Parts 1+2, Python |
| 347 bytes | █▋ | 2020, Day 11, Part 1, Python (with 2D arrays) |
| 347 bytes | █▋ | 2020, Day 20, Part 1, Python |
| 347 bytes | █▋ | 2024, Day 16, Part 2, Python |
| 346 bytes | █▋ | 2021, Day 21, Part 2, Python |
| 345 bytes | █▋ | 2019, Day 12, Part 1, Python |
| 343 bytes | █▋ | 2022, Day 11, Part 2, Python |
| 343 bytes | █▋ | 2023, Day 10, Part 1, Python |
| 343 bytes | █▋ | 2025, Day 09, Part 2, Python |
| 342 bytes | █▋ | 2018, Day 12, Part 2, Python |
| 342 bytes | █▋ | 2019, Day 05, Part 2, Python |
| 342 bytes | █▋ | 2021, Day 04, Part 1, Python |
| 341 bytes | █▋ | 2017, Day 14, Part 1, Python |
| 341 bytes | █▋ | 2020, Day 21, Parts 1+2, Python |
| 340 bytes | █▋ | 2022, Day 15, Part 2, Python (heuristics and boundary intersection) |
| 340 bytes | █▋ | 2022, Day 16, Part 1, Python (DFS only) |
| 340 bytes | █▋ | 2023, Day 18, Part 1, Python (BFS filling) |
| 339 bytes | █▋ | 2023, Day 12, Part 2, Python |
| 337 bytes | █▋ | 2019, Day 22, Part 2, Python (forward construction) |
| 337 bytes | █▋ | 2021, Day 25, Part 1, Python (sets) |
| 336 bytes | █▋ | 2016, Day 10, Part 2, Python |
| 335 bytes | █▋ | 2015, Day 21, Part 1, Python |
| 335 bytes | █▋ | 2024, Day 09, Part 2, Python (speed-optimized) |
| 335 bytes | █▋ | 2024, Day 15, Part 1, Python |
| 334 bytes | █▋ | 2015, Day 21, Part 2, Python |
| 334 bytes | █▋ | 2022, Day 14, Part 1, Python (coordinate tuples) |
| 333 bytes | █▋ | 2022, Day 23, Part 2, Python |
| 332 bytes | █▌ | 2022, Day 14, Part 1, Python (complex numbers) |
| 332 bytes | █▌ | 2023, Day 03, Part 2, Python (complex number dictionary) |
| 330 bytes | █▌ | 2022, Day 21, Parts 1+2, Python (linear solver) |
| 329 bytes | █▌ | 2023, Day 21, Part 2, Python (full simulation) |
| 328 bytes | █▌ | 2020, Day 17, Part 1, Python |
| 328 bytes | █▌ | 2021, Day 09, Part 2, Python (using low point seeds) |
| 327 bytes | █▌ | 2015, Day 16, Part 2, Python |
| 326 bytes | █▌ | 2016, Day 16, Part 2, C |
| 326 bytes | █▌ | 2023, Day 20, Part 2, Python (input graph parsing) |
| 325 bytes | █▌ | 2022, Day 11, Part 1, Python |
| 325 bytes | █▌ | 2024, Day 12, Part 2, Python |
| 323 bytes | █▌ | 2023, Day 12, Part 1, Python (approach from part 2) |
| 321 bytes | █▌ | 2016, Day 08, Parts 1+2, Python |
| 321 bytes | █▌ | 2017, Day 23, Part 1, Python |
| 321 bytes | █▌ | 2021, Day 11, Part 1, Python |
| 321 bytes | █▌ | 2021, Day 11, Part 2, Python |
| 320 bytes | █▌ | 2016, Day 10, Part 1, Python |
| 318 bytes | █▌ | 2022, Day 21, Part 2, Python (linear solver) |
| 318 bytes | █▌ | 2024, Day 06, Part 2, Python |
| 317 bytes | █▌ | 2024, Day 18, Part 2, Python (binary search) |
| 315 bytes | █▌ | 2023, Day 11, Part 2, Python (coordinate translation) |
| 314 bytes | █▌ | 2015, Day 11, Part 2, Python |
| 314 bytes | █▌ | 2018, Day 14, Part 2, C |
| 314 bytes | █▌ | 2019, Day 14, Part 1, Python |
| 314 bytes | █▌ | 2022, Day 14, Part 2, Python (sweep approach) |
| 312 bytes | █▌ | 2022, Day 12, Parts 1+2, Python |
| 311 bytes | █▌ | 2021, Day 09, Part 2, Python (using arbitrary seeds) |
| 310 bytes | █▌ | 2023, Day 11, Part 1, Python (duplicating rows and columns) |
| 309 bytes | █▌ | 2017, Day 16, Part 2, Python |
| 307 bytes | █▌ | 2023, Day 11, Part 1, Python (coordinate translation) |
| 306 bytes | █▌ | 2022, Day 03, Parts 1+2, x86 DOS Assembly (assembled) |
| 305 bytes | █▌ | 2018, Day 11, Part 2, Python (pre-summed matrix) |
| 303 bytes | █▍ | 2017, Day 08, Part 2, Python |
| 303 bytes | █▍ | 2018, Day 11, Part 2, Python (SAT) |
| 303 bytes | █▍ | 2025, Day 10, Part 1, Python |
| 299 bytes | █▍ | 2017, Day 17, Part 2, C (full simulation with circular list) |
| 299 bytes | █▍ | 2024, Day 05, Parts 1+2, Python |
| 298 bytes | █▍ | 2015, Day 13, Part 2, Python |
| 297 bytes | █▍ | 2021, Day 16, Part 1, Python |
| 296 bytes | █▍ | 2022, Day 09, Part 2, Python (coordinate tuples) |
| 296 bytes | █▍ | 2023, Day 14, Part 2, Python (string processing) |
| 295 bytes | █▍ | 2021, Day 05, Part 1, Python (coordinate list) |
| 294 bytes | █▍ | 2023, Day 03, Part 1, Python (complex number dictionary) |
| 292 bytes | █▍ | 2015, Day 18, Part 1, Python |
| 292 bytes | █▍ | 2017, Day 25, Part 1, Python |
| 292 bytes | █▍ | 2020, Day 14, Part 2, Python |
| 291 bytes | █▍ | 2017, Day 08, Part 1, Python |
| 291 bytes | █▍ | 2018, Day 03, Part 2, Python |
| 290 bytes | █▍ | 2017, Day 20, Part 2, Python |
| 290 bytes | █▍ | 2023, Day 15, Part 2, Python |
| 290 bytes | █▍ | 2025, Day 08, Part 1, Python |
| 289 bytes | █▍ | 2018, Day 12, Part 1, Python |
| 287 bytes | █▍ | 2015, Day 13, Part 1, Python |
| 286 bytes | █▍ | 2016, Day 17, Part 2, Python |
| 286 bytes | █▍ | 2021, Day 13, Part 2, Python |
| 283 bytes | █▍ | 2024, Day 05, Part 2, Python |
| 283 bytes | █▍ | 2024, Day 20, Part 1, Python |
| 282 bytes | █▍ | 2022, Day 05, Part 1, Python |
| 281 bytes | █▍ | 2015, Day 19, Part 2, Python (greedy DFS) |
| 281 bytes | █▍ | 2021, Day 24, Part 1, Python |
| 279 bytes | █▍ | 2017, Day 19, Parts 1+2, Python |
| 279 bytes | █▍ | 2018, Day 22, Part 1, Python |
| 279 bytes | █▍ | 2022, Day 09, Part 2, Python (complex numbers) |
| 279 bytes | █▍ | 2024, Day 17, Part 1, Python |
| 278 bytes | █▍ | 2021, Day 24, Part 2, Python |
| 277 bytes | █▍ | 2022, Day 20, Part 2, Python (linked list) |
| 276 bytes | █▍ | 2015, Day 11, Part 1, Python |
| 276 bytes | █▍ | 2015, Day 23, Part 1, Python |
| 276 bytes | █▍ | 2015, Day 23, Part 2, Python |
| 276 bytes | █▍ | 2016, Day 19, Part 2, C |
| 276 bytes | █▍ | 2018, Day 09, Part 2, Python (CDLL) |
| 276 bytes | █▍ | 2022, Day 05, Part 2, Python |
| 276 bytes | █▍ | 2022, Day 13, Part 1, Python |
| 276 bytes | █▍ | 2024, Day 16, Part 1, Python |
| 275 bytes | █▍ | 2015, Day 19, Part 1, Python |
| 275 bytes | █▍ | 2016, Day 12, Part 2, Python |
| 275 bytes | █▍ | 2021, Day 05, Part 1, Python (using part 2 approach) |
| 274 bytes | █▎ | 2023, Day 07, Part 1, Python |
| 273 bytes | █▎ | 2016, Day 17, Part 1, Python |
| 271 bytes | █▎ | 2016, Day 14, Part 2, Python |
| 271 bytes | █▎ | 2018, Day 25, Part 1, Python |
| 271 bytes | █▎ | 2019, Day 05, Part 1, Python |
| 270 bytes | █▎ | 2016, Day 12, Part 1, Python |
| 270 bytes | █▎ | 2024, Day 24, Part 1, Python |
| 269 bytes | █▎ | 2019, Day 24, Part 1, Python |
| 269 bytes | █▎ | 2020, Day 11, Part 1, Python (with dictionaries) |
| 268 bytes | █▎ | 2024, Day 12, Part 1, Python |
| 266 bytes | █▎ | 2022, Day 20, Part 2, Python (nested loop) |
| 265 bytes | █▎ | 2023, Day 24, Part 1, Python |
| 265 bytes | █▎ | 2024, Day 14, Part 2, Python (Independent Axis Minimum Variance) |
| 264 bytes | █▎ | 2015, Day 16, Part 1, Python |
| 264 bytes | █▎ | 2022, Day 13, Part 2, Python (with proper parsing and comparison) |
| 263 bytes | █▎ | 2015, Day 15, Part 2, Python |
| 263 bytes | █▎ | 2020, Day 18, Part 1, Python |
| 262 bytes | █▎ | 2017, Day 19, Part 1, Python |
| 262 bytes | █▎ | 2022, Day 18, Part 2, Python |
| 262 bytes | █▎ | 2024, Day 18, Part 2, Python (brute force) |
| 261 bytes | █▎ | 2022, Day 07, Parts 1+2, Python |
| 260 bytes | █▎ | 2018, Day 05, Part 2, Python (single-pass) |
| 260 bytes | █▎ | 2018, Day 11, Part 2, Python (naive) |
| 260 bytes | █▎ | 2023, Day 13, Part 2, Python |
| 259 bytes | █▎ | 2017, Day 24, Part 2, Python |
| 258 bytes | █▎ | 2020, Day 08, Part 2, Python |
| 258 bytes | █▎ | 2021, Day 12, Part 2, Python |
| 257 bytes | █▎ | 2024, Day 23, Part 1, Python |
| 256 bytes | █▎ | 2022, Day 01, Parts 1+2, x86 DOS Assembly (assembled) |
| 255 bytes | █▎ | 2018, Day 06, Part 2, Python |
| 255 bytes | █▎ | 2025, Day 08, Part 2, Python |
| 254 bytes | █▎ | 2021, Day 22, Part 1, Python |
| 253 bytes | █▎ | 2015, Day 15, Part 1, Python |
| 253 bytes | █▎ | 2016, Day 13, Part 2, Python |
| 253 bytes | █▎ | 2017, Day 10, Part 2, Python |
| 253 bytes | █▎ | 2021, Day 05, Part 2, Python |
| 251 bytes | █▎ | 2021, Day 10, Part 2, Python |
| 251 bytes | █▎ | 2024, Day 18, Part 1, Python |
| 250 bytes | █▎ | 2022, Day 21, Part 1, Python |
| 247 bytes | █▎ | 2018, Day 20, Parts 1+2, Python (new) |
| 247 bytes | █▎ | 2024, Day 08, Part 1, Python |
| 247 bytes | █▎ | 2025, Day 11, Part 2, Python (partial paths) |
| 246 bytes | █▎ | 2018, Day 07, Part 1, Python |
| 246 bytes | █▎ | 2023, Day 01, Part 2, Python |
| 246 bytes | █▎ | 2024, Day 09, Part 2, Python (minimum size) |
| 244 bytes | █▏ | 2020, Day 23, Part 2, Python |
| 242 bytes | █▏ | 2017, Day 19, Part 2, Python |
| 241 bytes | █▏ | 2022, Day 20, Part 1, Python (linked list) |
| 241 bytes | █▏ | 2024, Day 23, Part 2, Python |
| 240 bytes | █▏ | 2015, Day 19, Part 2, Python (dumb DFS) |
| 240 bytes | █▏ | 2025, Day 10, Part 2, Python (using SciPy) |
| 239 bytes | █▏ | 2024, Day 11, Part 2, Python (type-and-frequency) |
| 238 bytes | █▏ | 2015, Day 24, Parts 1+2, Python (proper algorithm) |
| 238 bytes | █▏ | 2023, Day 08, Part 2, Python |
| 238 bytes | █▏ | 2024, Day 22, Part 2, Python |
| 237 bytes | █▏ | 2021, Day 13, Part 1, Python |
| 236 bytes | █▏ | 2016, Day 13, Part 1, Python |
| 236 bytes | █▏ | 2020, Day 18, Part 2, Python (eval hack) |
| 235 bytes | █▏ | 2017, Day 06, Part 2, Python |
| 235 bytes | █▏ | 2022, Day 09, Part 1, Python (coordinate tuples) |
| 235 bytes | █▏ | 2024, Day 14, Part 2, Python (Minimum Variance) |
| 234 bytes | █▏ | 2017, Day 16, Part 1, Python |
| 234 bytes | █▏ | 2022, Day 09, Part 1, Python (complex numbers) |
| 233 bytes | █▏ | 2021, Day 14, Part 1, Python |
| 233 bytes | █▏ | 2024, Day 08, Part 2, Python |
| 232 bytes | █▏ | 2015, Day 24, Part 1, Python (brute-force) |
| 232 bytes | █▏ | 2018, Day 08, Part 2, Python |
| 232 bytes | █▏ | 2021, Day 17, Part 1, Python |
| 230 bytes | █▏ | 2023, Day 05, Part 1, Python |
| 230 bytes | █▏ | 2024, Day 11, Part 2, Python (DFS + memoization) |
| 229 bytes | █▏ | 2015, Day 06, Part 2, Python |
| 229 bytes | █▏ | 2017, Day 22, Part 2, Python |
| 227 bytes | █▏ | 2020, Day 09, Part 2, Python |
| 226 bytes | █▏ | 2015, Day 06, Part 1, Python |
| 224 bytes | █▏ | 2022, Day 08, Part 2, Python |
| 223 bytes | █▏ | 2020, Day 15, Part 2, C |
| 223 bytes | █▏ | 2022, Day 20, Part 1, Python (nested loop) |
| 222 bytes | █▏ | 2024, Day 14, Part 2, Python (Run of Adjacent Spots) |
| 220 bytes | █▏ | 2017, Day 22, Part 1, Python |
| 220 bytes | █▏ | 2021, Day 12, Part 1, Python |
| 220 bytes | █▏ | 2022, Day 08, Part 1, Python |
| 220 bytes | █▏ | 2022, Day 20, Parts 1+2, Python (order table) |
| 219 bytes | █▏ | 2024, Day 10, Part 1, Python |
| 217 bytes | █▏ | 2020, Day 22, Part 1, Python |
| 216 bytes | █ | 2021, Day 17, Part 2, Python |
| 214 bytes | █ | 2019, Day 03, Part 2, Python |
| 214 bytes | █ | 2019, Day 16, Part 1, Python (computing and "caching" the transform matrix first) |
| 212 bytes | █ | 2016, Day 01, Part 2, Python |
| 212 bytes | █ | 2020, Day 07, Part 2, Python |
| 211 bytes | █ | 2023, Day 13, Part 1, Python |
| 210 bytes | █ | 2017, Day 20, Part 1, Python |
| 210 bytes | █ | 2017, Day 24, Part 1, Python |
| 210 bytes | █ | 2019, Day 03, Part 1, Python |
| 210 bytes | █ | 2024, Day 13, Part 2, Python |
| 209 bytes | █ | 2024, Day 07, Part 2, Python (optimized) |
| 208 bytes | █ | 2016, Day 07, Part 2, Python |
| 208 bytes | █ | 2019, Day 22, Part 1, Python (full deck simulation) |
| 208 bytes | █ | 2021, Day 10, Part 1, Python |
| 208 bytes | █ | 2025, Day 11, Part 2, Python (tagging) |
| 206 bytes | █ | 2024, Day 19, Part 2, Python |
| 205 bytes | █ | 2025, Day 03, Parts 1+2, Python (DFS+memoization) |
| 204 bytes | █ | 2018, Day 09, Part 1, Python (array) |
| 204 bytes | █ | 2020, Day 16, Part 1, Python |
| 203 bytes | █ | 2015, Day 14, Part 2, Python |
| 203 bytes | █ | 2025, Day 04, Part 2, Python |
| 202 bytes | █ | 2017, Day 03, Part 2, Python |
| 202 bytes | █ | 2020, Day 07, Part 1, Python |
| 202 bytes | █ | 2023, Day 08, Part 1, Python |
| 202 bytes | █ | 2024, Day 10, Part 2, Python |
| 201 bytes | █ | 2018, Day 11, Part 1, Python |
| 201 bytes | █ | 2023, Day 14, Part 1, Python (string processing) |
| 201 bytes | █ | 2024, Day 17, Part 2, Python (puzzle input specific) |
| 200 bytes | █ | 2019, Day 08, Part 2, Python |
| 200 bytes | █ | 2022, Day 15, Part 1, Python (set of coordinates) |
| 199 bytes | █ | 2017, Day 06, Part 1, Python |
| 199 bytes | █ | 2021, Day 15, Part 1, Python |
| 199 bytes | █ | 2022, Day 25, Part 1, Python (direct addition) |
| 199 bytes | █ | 2024, Day 05, Part 1, Python |
| 198 bytes | █ | 2016, Day 14, Part 1, Python |
| 198 bytes | █ | 2024, Day 14, Part 1, Python |
| 198 bytes | █ | 2025, Day 12, Part 1, Python |
| 197 bytes | █ | 2017, Day 12, Part 2, Python |
| 197 bytes | █ | 2018, Day 03, Part 1, Python |
| 197 bytes | █ | 2019, Day 02, Part 2, Python |
| 197 bytes | █ | 2020, Day 23, Part 1, Python |
| 195 bytes | █ | 2017, Day 15, Part 2, Python |
| 195 bytes | █ | 2018, Day 21, Part 2, Python (host computation) |
| 195 bytes | █ | 2024, Day 09, Part 1, Python |
| 194 bytes | █ | 2017, Day 11, Part 2, Python |
| 194 bytes | █ | 2021, Day 21, Part 1, Python |
| 193 bytes | █ | 2024, Day 02, Part 2, Python |
| 193 bytes | █ | 2024, Day 06, Part 1, Python |
| 191 bytes | █ | 2020, Day 12, Part 2, Python |
| 191 bytes | █ | 2023, Day 21, Part 1, Python |
| 191 bytes | █ | 2025, Day 03, Part 2, Python (DFS+memoization) |
| 189 bytes | █ | 2022, Day 20, Part 2, Python (order table) |
| 187 bytes | ▉ | 2025, Day 06, Part 2, Python (safe) |
| 186 bytes | ▉ | 2015, Day 09, Part 1, Python |
| 186 bytes | ▉ | 2015, Day 09, Part 2, Python |
| 186 bytes | ▉ | 2015, Day 12, Part 2, Python |
| 186 bytes | ▉ | 2016, Day 09, Part 2, Python |
| 186 bytes | ▉ | 2020, Day 24, Part 1, Python |
| 185 bytes | ▉ | 2019, Day 16, Part 1, Python (computing the transform matrix on-the-fly) |
| 185 bytes | ▉ | 2021, Day 09, Part 1, Python |
| 185 bytes | ▉ | 2023, Day 14, Part 1, Python (complex numbers) |
| 184 bytes | ▉ | 2023, Day 02, Part 2, Python |
| 184 bytes | ▉ | 2023, Day 14, Part 1, Python (coordinate tuples) |
| 183 bytes | ▉ | 2022, Day 02, Parts 1+2, x86 DOS Assembly (assembled) |
| 182 bytes | ▉ | 2024, Day 07, Part 2, Python (naive) |
| 182 bytes | ▉ | 2024, Day 13, Part 1, Python |
| 181 bytes | ▉ | 2016, Day 22, Part 2, Python |
| 181 bytes | ▉ | 2018, Day 05, Part 1, Python (multi-pass) |
| 181 bytes | ▉ | 2021, Day 03, Part 2, Python |
| 181 bytes | ▉ | 2021, Day 25, Part 1, Python (strings) |
| 180 bytes | ▉ | 2016, Day 16, Part 2, Python |
| 180 bytes | ▉ | 2023, Day 09, Part 2, Python |
| 180 bytes | ▉ | 2024, Day 04, Part 1, Python |
| 179 bytes | ▉ | 2016, Day 20, Part 2, Python |
| 179 bytes | ▉ | 2019, Day 16, Part 2, Python |
| 179 bytes | ▉ | 2020, Day 14, Part 1, Python |
| 179 bytes | ▉ | 2023, Day 02, Part 1, Python |
| 179 bytes | ▉ | 2024, Day 11, Part 1, Python |
| 178 bytes | ▉ | 2016, Day 04, Part 1, Python |
| 178 bytes | ▉ | 2024, Day 14, Part 2, Python (Unique Positions) |
| 177 bytes | ▉ | 2016, Day 02, Part 2, Python |
| 177 bytes | ▉ | 2018, Day 14, Part 2, Python |
| 177 bytes | ▉ | 2020, Day 12, Part 1, Python |
| 176 bytes | ▉ | 2023, Day 18, Part 1, Python (shoelace/Pick) |
| 175 bytes | ▉ | 2023, Day 04, Part 2, Python |
| 174 bytes | ▉ | 2023, Day 18, Part 2, Python (shoelace/Pick) |
| 173 bytes | ▉ | 2016, Day 16, Part 1, Python |
| 172 bytes | ▉ | 2016, Day 05, Part 2, Python |
| 172 bytes | ▉ | 2024, Day 04, Part 2, Python |
| 171 bytes | ▉ | 2022, Day 04, Parts 1+2, x86 DOS Assembly (assembled) |
| 170 bytes | ▉ | 2017, Day 10, Part 1, Python |
| 170 bytes | ▉ | 2022, Day 20, Part 1, Python (order table) |
| 169 bytes | ▉ | 2022, Day 25, Part 1, Python (with conversions) |
| 168 bytes | ▉ | 2025, Day 04, Part 1, Python |
| 167 bytes | ▉ | 2017, Day 11, Part 1, Python |
| 167 bytes | ▉ | 2017, Day 13, Part 2, Python |
| 166 bytes | ▉ | 2015, Day 17, Part 2, Python |
| 166 bytes | ▉ | 2016, Day 19, Part 2, Python |
| 166 bytes | ▉ | 2019, Day 08, Part 1, Python |
| 165 bytes | ▉ | 2019, Day 06, Part 2, Python |
| 165 bytes | ▉ | 2022, Day 13, Part 2, Python (shortcut, list-based) |
| 165 bytes | ▉ | 2024, Day 25, Part 1, Python |
| 164 bytes | ▉ | 2022, Day 10, Part 2, Python |
| 163 bytes | ▉ | 2018, Day 08, Part 1, Python |
| 162 bytes | ▉ | 2025, Day 07, Part 2, Python (dictionary) |
| 161 bytes | ▉ | 2016, Day 02, Part 1, Python |
| 160 bytes | ▉ | 2020, Day 04, Part 1, Python |
| 159 bytes | ▊ | 2017, Day 12, Part 1, Python |
| 158 bytes | ▊ | 2018, Day 14, Part 1, Python |
| 158 bytes | ▊ | 2020, Day 03, Part 2, Python |
| 157 bytes | ▊ | 2020, Day 08, Part 1, Python |
| 155 bytes | ▊ | 2016, Day 09, Part 1, Python |
| 155 bytes | ▊ | 2025, Day 06, Part 2, Python (using eval) |
| 155 bytes | ▊ | 2025, Day 07, Part 2, Python (list) |
| 154 bytes | ▊ | 2017, Day 15, Part 1, Python |
| 154 bytes | ▊ | 2023, Day 09, Part 1, Python |
| 153 bytes | ▊ | 2022, Day 18, Part 1, Python |
| 153 bytes | ▊ | 2025, Day 02, Part 2, Python (regular expressions) |
| 152 bytes | ▊ | 2025, Day 02, Part 1, Python |
| 152 bytes | ▊ | 2025, Day 05, Part 2, Python |
| 151 bytes | ▊ | 2016, Day 04, Part 2, Python |
| 151 bytes | ▊ | 2017, Day 02, Part 2, Python |
| 151 bytes | ▊ | 2025, Day 03, Part 2, Python (greedy algorithm) |
| 150 bytes | ▊ | 2016, Day 18, Part 2, Python |
| 150 bytes | ▊ | 2018, Day 23, Part 1, Python |
| 150 bytes | ▊ | 2025, Day 02, Part 2, Python (string maninpulation) |
| 149 bytes | ▊ | 2017, Day 13, Part 1, Python |
| 149 bytes | ▊ | 2017, Day 23, Part 2, Python |
| 149 bytes | ▊ | 2019, Day 02, Part 1, Python |
| 149 bytes | ▊ | 2024, Day 03, Part 2, Python |
| 148 bytes | ▊ | 2015, Day 20, Part 2, Python |
| 148 bytes | ▊ | 2024, Day 07, Part 1, Python |
| 147 bytes | ▊ | 2016, Day 07, Part 1, Python |
| 147 bytes | ▊ | 2016, Day 15, Part 2, Python |
| 146 bytes | ▊ | 2016, Day 18, Part 1, Python |
| 146 bytes | ▊ | 2019, Day 22, Part 1, Python (single card tracing) |
| 145 bytes | ▊ | 2015, Day 25, Part 1, Python |
| 145 bytes | ▊ | 2025, Day 07, Part 1, Python |
| 144 bytes | ▊ | 2020, Day 02, Part 2, Python |
| 144 bytes | ▊ | 2020, Day 09, Part 1, Python |
| 143 bytes | ▊ | 2016, Day 03, Part 2, Python |
| 143 bytes | ▊ | 2017, Day 09, Part 1, Python |
| 142 bytes | ▊ | 2015, Day 05, Part 1, Python |
| 142 bytes | ▊ | 2016, Day 01, Part 1, Python |
| 142 bytes | ▊ | 2016, Day 22, Part 1, Python |
| 142 bytes | ▊ | 2020, Day 05, Part 2, Python |
| 142 bytes | ▊ | 2022, Day 06, Parts 1+2, x86 DOS Assembly (assembled) |
| 141 bytes | ▊ | 2015, Day 20, Part 1, Python |
| 138 bytes | ▊ | 2021, Day 06, Part 2, Python |
| 138 bytes | ▊ | 2024, Day 02, Part 1, Python |
| 137 bytes | ▊ | 2020, Day 02, Part 1, Python |
| 137 bytes | ▊ | 2020, Day 10, Part 2, Python |
| 137 bytes | ▊ | 2020, Day 13, Part 2, Python |
| 137 bytes | ▊ | 2021, Day 06, Part 1, Python |
| 137 bytes | ▊ | 2022, Day 13, Part 2, Python (shortcut, string-based) |
| 136 bytes | ▊ | 2017, Day 17, Part 2, Python (full simulation with circular list) (estimated) |
| 136 bytes | ▊ | 2025, Day 05, Part 1, Python |
| 135 bytes | ▊ | 2018, Day 02, Part 2, Python |
| 135 bytes | ▊ | 2025, Day 09, Part 1, Python |
| 133 bytes | ▊ | 2015, Day 10, Part 2, Python |
| 133 bytes | ▊ | 2020, Day 06, Part 2, Python |
| 132 bytes | ▊ | 2017, Day 04, Part 2, Python |
| 131 bytes | ▊ | 2016, Day 19, Part 1, Python |
| 131 bytes | ▊ | 2025, Day 06, Part 1, Python (safe) |
| 131 bytes | ▊ | 2025, Day 11, Part 1, Python |
| 130 bytes | ▋ | 2018, Day 21, Part 1, Python (host computation) |
| 129 bytes | ▋ | 2018, Day 02, Part 1, Python |
| 128 bytes | ▋ | 2015, Day 03, Part 2, Python |
| 128 bytes | ▋ | 2017, Day 07, Part 1, Python |
| 128 bytes | ▋ | 2021, Day 07, Part 2, Python |
| 128 bytes | ▋ | 2022, Day 03, Part 2, Python |
| 127 bytes | ▋ | 2016, Day 20, Part 1, Python |
| 127 bytes | ▋ | 2022, Day 10, Part 1, Python |
| 125 bytes | ▋ | 2024, Day 19, Part 1, Python |
| 124 bytes | ▋ | 2016, Day 15, Part 1, Python |
| 123 bytes | ▋ | 2016, Day 05, Part 1, Python |
| 122 bytes | ▋ | 2015, Day 14, Part 1, Python |
| 122 bytes | ▋ | 2019, Day 04, Part 2, Python |
| 122 bytes | ▋ | 2022, Day 03, Part 1, Python |
| 121 bytes | ▋ | 2015, Day 10, Part 1, Python |
| 121 bytes | ▋ | 2019, Day 04, Part 1, Python |
| 120 bytes | ▋ | 2021, Day 03, Part 1, Python |
| 120 bytes | ▋ | 2024, Day 22, Part 1, Python |
| 118 bytes | ▋ | 2018, Day 01, Part 2, Python |
| 118 bytes | ▋ | 2020, Day 13, Part 1, Python |
| 118 bytes | ▋ | 2021, Day 08, Part 1, Python |
| 118 bytes | ▋ | 2022, Day 04, Part 1, Python |
| 117 bytes | ▋ | 2015, Day 05, Part 2, Python |
| 116 bytes | ▋ | 2020, Day 15, Part 2, Python |
| 116 bytes | ▋ | 2020, Day 25, Part 1, Python |
| 116 bytes | ▋ | 2023, Day 06, Part 1, Python |
| 115 bytes | ▋ | 2017, Day 04, Part 1, Python |
| 114 bytes | ▋ | 2016, Day 25, Part 1, Python |
| 114 bytes | ▋ | 2021, Day 02, Part 2, Python |
| 114 bytes | ▋ | 2023, Day 04, Part 1, Python |
| 113 bytes | ▋ | 2019, Day 06, Part 1, Python |
| 112 bytes | ▋ | 2015, Day 17, Part 1, Python |
| 112 bytes | ▋ | 2017, Day 05, Part 2, Python |
| 112 bytes | ▋ | 2020, Day 15, Part 1, Python |
| 110 bytes | ▋ | 2023, Day 15, Part 1, Python |
| 109 bytes | ▋ | 2015, Day 03, Part 1, Python |
| 109 bytes | ▋ | 2017, Day 09, Part 2, Python |
| 106 bytes | ▋ | 2021, Day 02, Part 1, Python (using complex numbers) |
| 106 bytes | ▋ | 2022, Day 21, Part 1, Python (evil exec hackery) |
| 105 bytes | ▋ | 2021, Day 02, Part 1, Python (using separate components) |
| 105 bytes | ▋ | 2023, Day 06, Part 2, Python (quadratic equation solving) |
| 105 bytes | ▋ | 2024, Day 03, Part 1, Python |
| 104 bytes | ▋ | 2020, Day 10, Part 1, Python |
| 104 bytes | ▋ | 2021, Day 07, Part 1, Python |
| 103 bytes | ▋ | 2022, Day 04, Part 2, Python |
| 102 bytes | ▋ | 2017, Day 05, Part 1, Python |
| 102 bytes | ▋ | 2024, Day 01, Part 1, Python |
| 101 bytes | ▌ | 2022, Day 02, Part 1, Python |
| 100 bytes | ▌ | 2016, Day 23, Part 2, Python |
| 100 bytes | ▌ | 2017, Day 01, Part 2, Python |
| 100 bytes | ▌ | 2020, Day 03, Part 1, Python |
| 99 bytes | ▌ | 2015, Day 02, Part 1, Python |
| 99 bytes | ▌ | 2020, Day 05, Part 1, Python |
| 99 bytes | ▌ | 2023, Day 06, Part 2, Python (brute force) |
| 98 bytes | ▌ | 2020, Day 01, Part 2, Python |
| 95 bytes | ▌ | 2015, Day 02, Part 2, Python |
| 95 bytes | ▌ | 2022, Day 01, Part 2, Python |
| 93 bytes | ▌ | 2017, Day 01, Part 1, Python |
| 92 bytes | ▌ | 2015, Day 01, Part 2, Python |
| 92 bytes | ▌ | 2016, Day 06, Part 1, Python |
| 92 bytes | ▌ | 2016, Day 06, Part 2, Python |
| 92 bytes | ▌ | 2021, Day 01, Part 2, Python |
| 92 bytes | ▌ | 2024, Day 01, Part 2, Python |
| 91 bytes | ▌ | 2022, Day 02, Part 2, Python |
| 91 bytes | ▌ | 2025, Day 01, Part 2, Python |
| 91 bytes | ▌ | 2025, Day 03, Part 1, Python (brute force) |
| 90 bytes | ▌ | 2017, Day 17, Part 2, Python (tracking) |
| 89 bytes | ▌ | 2015, Day 04, Part 1, Python |
| 89 bytes | ▌ | 2015, Day 04, Part 2, Python |
| 89 bytes | ▌ | 2025, Day 06, Part 1, Python (using eval) |
| 88 bytes | ▌ | 2022, Day 06, Part 2, Python |
| 88 bytes | ▌ | 2023, Day 01, Part 1, Python |
| 87 bytes | ▌ | 2017, Day 02, Part 1, Python |
| 86 bytes | ▌ | 2022, Day 06, Part 1, Python |
| 84 bytes | ▌ | 2016, Day 03, Part 1, Python |
| 83 bytes | ▌ | 2025, Day 01, Part 1, Python |
| 82 bytes | ▌ | 2022, Day 01, Part 1, Python |
| 80 bytes | ▌ | 2017, Day 17, Part 1, Python (full simulation with arrays) |
| 80 bytes | ▌ | 2019, Day 01, Part 2, Python |
| 79 bytes | ▌ | 2020, Day 01, Part 1, Python |
| 77 bytes | ▌ | 2020, Day 06, Part 1, Python |
| 75 bytes | ▌ | 2015, Day 12, Part 1, Python |
| 68 bytes | ▍ | 2017, Day 03, Part 1, Python |
| 68 bytes | ▍ | 2021, Day 01, Part 1, Python |
| 66 bytes | ▍ | 2015, Day 08, Part 2, Python |
| 65 bytes | ▍ | 2015, Day 08, Part 1, Python |
| 59 bytes | ▍ | 2015, Day 01, Part 1, Python |
| 48 bytes | ▍ | 2019, Day 01, Part 1, Python |
| 38 bytes | ▎ | 2018, Day 01, Part 1, Python |
| Runtime | Day, Part, Solution | |
|---|---|---|
| ~10 h | █████ | 2017, Day 17, Part 2, Python (full simulation with circular list) (estimated) |
| ~40 m | ████ | 2021, Day 22, Part 2, Python (naive approach with coordinate compression) |
| ~20 m | ███▊ | 2021, Day 25, Part 1, Python (sets) |
| ~15 m | ███▋ | 2015, Day 24, Part 1, Python (brute-force) |
| ~10 m | ███▌ | 2018, Day 11, Part 2, Python (naive) |
| ~8 m | ███▍ | 2017, Day 17, Part 2, C (full simulation with circular list) |
| ~3 m | ███ | 2022, Day 15, Part 2, Python (coordinate ranges) |
| ~1.5 m | ██▊ | 2022, Day 16, Part 2, Python (DFS only) |
| ~60 s | ██▋ | 2023, Day 23, Part 2, Python (graph DFS using sets) |
| ~40 s | ██▍ | 2016, Day 05, Part 2, Python |
| ~35 s | ██▍ | 2023, Day 23, Part 2, Python (graph DFS using bitfields) |
| ~30 s | ██▎ | 2016, Day 14, Part 2, Python |
| ~30 s | ██▎ | 2018, Day 09, Part 2, Python (CDLL) |
| ~30 s | ██▎ | 2019, Day 10, Part 2, Python (with visualization) |
| ~30 s | ██▎ | 2021, Day 19, Part 1, Python |
| ~30 s | ██▎ | 2021, Day 19, Part 2, Python |
| ~30 s | ██▎ | 2022, Day 19, Part 2, Python |
| ~25 s | ██▎ | 2018, Day 11, Part 2, Python (pre-summed matrix) |
| ~25 s | ██▎ | 2024, Day 06, Part 2, Python |
| ~25 s | ██▎ | 2024, Day 06, Parts 1+2, Python |
| ~25 s | ██▎ | 2025, Day 09, Part 2, Python |
| ~20 s | ██▏ | 2016, Day 12, Part 2, Python |
| ~20 s | ██▏ | 2018, Day 14, Part 2, Python |
| ~20 s | ██▏ | 2018, Day 15, Parts 1+2, Python |
| ~20 s | ██▏ | 2022, Day 16, Part 2, Python (BFS+DFS) |
| ~20 s | ██▏ | 2022, Day 20, Part 2, Python (nested loop) |
| ~20 s | ██▏ | 2023, Day 12, Part 1, Python (brute force) |
| ~20 s | ██▏ | 2023, Day 21, Part 2, Python (full simulation) |
| ~15 s | ██ | 2016, Day 11, Part 1, Python (without canonicalization) |
| ~15 s | ██ | 2020, Day 15, Part 2, Python |
| ~15 s | ██ | 2020, Day 23, Part 2, Python |
| ~15 s | ██ | 2021, Day 22, Part 2, Python (cube-splitting approach) |
| ~15 s | ██ | 2022, Day 23, Part 2, Python |
| ~15 s | ██ | 2022, Day 23, Parts 1+2, Python |
| ~15 s | ██ | 2024, Day 07, Part 2, Python (naive) |
| ~15 s | ██ | 2024, Day 09, Part 2, Python (minimum size) |
| ~15 s | ██ | 2024, Day 14, Part 2, Python (Run of Adjacent Spots) |
| ~12 s | ██ | 2017, Day 17, Part 2, Python (tracking) |
| ~10 s | █▉ | 2016, Day 05, Part 1, Python |
| ~10 s | █▉ | 2016, Day 16, Part 2, Python |
| ~10 s | █▉ | 2017, Day 05, Part 2, Python |
| ~10 s | █▉ | 2017, Day 15, Part 1, Python |
| ~10 s | █▉ | 2018, Day 22, Part 2, Python (simple) |
| ~10 s | █▉ | 2019, Day 16, Part 1, Python (computing the transform matrix on-the-fly) |
| ~10 s | █▉ | 2019, Day 16, Part 2, Python |
| ~10 s | █▉ | 2021, Day 20, Part 2, Python |
| ~10 s | █▉ | 2021, Day 24, Part 1, Python |
| ~10 s | █▉ | 2023, Day 16, Part 2, Python |
| ~10 s | █▉ | 2024, Day 18, Part 2, Python (brute force) |
| ~10 s | █▉ | 2024, Day 20, Part 2, Python |
| ~10 s | █▉ | 2024, Day 22, Part 2, Python |
| ~8 s | █▊ | 2016, Day 19, Part 2, Python |
| ~8 s | █▊ | 2017, Day 15, Part 2, Python |
| ~7.5 s | █▊ | 2019, Day 10, Part 2, Python |
| ~7 s | █▊ | 2016, Day 18, Part 2, Python |
| ~7 s | █▊ | 2018, Day 25, Part 1, Python |
| ~7 s | █▊ | 2021, Day 15, Part 2, Python (BFS) |
| ~7 s | █▊ | 2022, Day 19, Part 1, Python |
| ~6 s | █▊ | 2015, Day 10, Part 2, Python |
| ~6 s | █▊ | 2015, Day 11, Part 2, Python |
| ~6 s | █▊ | 2016, Day 11, Part 2, Python (with canonicalization) |
| ~6 s | █▊ | 2018, Day 11, Part 2, Python (optimized pre-summed matrix) |
| ~6 s | █▊ | 2019, Day 12, Part 2, Python (full axis separation) |
| ~6 s | █▊ | 2019, Day 25, Part 1, Python |
| ~6 s | █▊ | 2024, Day 20, Part 1, Python |
| ~5 s | █▋ | 2015, Day 06, Part 2, Python |
| ~5 s | █▋ | 2015, Day 22, Part 2, Python |
| ~5 s | █▋ | 2017, Day 13, Part 2, Python |
| ~5 s | █▋ | 2017, Day 22, Part 2, Python |
| ~5 s | █▋ | 2017, Day 24, Part 1, Python |
| ~5 s | █▋ | 2017, Day 24, Part 2, Python |
| ~5 s | █▋ | 2017, Day 25, Part 1, Python |
| ~5 s | █▋ | 2018, Day 24, Parts 1+2, Python |
| ~5 s | █▋ | 2019, Day 12, Part 2, Python (derived from part 1 solution) |
| ~5 s | █▋ | 2019, Day 16, Part 1, Python (computing and "caching" the transform matrix first) |
| ~5 s | █▋ | 2019, Day 19, Part 2, Python (edge walking) |
| ~5 s | █▋ | 2020, Day 25, Part 1, Python |
| ~5 s | █▋ | 2023, Day 06, Part 2, Python (brute force) |
| ~5 s | █▋ | 2023, Day 17, Part 2, Python |
| ~5 s | █▋ | 2023, Day 25, Part 1, Python |
| ~4 s | █▌ | 2015, Day 20, Part 2, Python |
| ~4 s | █▌ | 2018, Day 05, Part 1, Python (multi-pass) |
| ~4 s | █▌ | 2018, Day 22, Part 2, Python (optimized) |
| ~4 s | █▌ | 2021, Day 18, Part 2, Python |
| ~3.5 s | █▌ | 2015, Day 04, Part 2, Python |
| ~3.5 s | █▌ | 2015, Day 06, Part 1, Python |
| ~3.5 s | █▌ | 2016, Day 17, Part 2, Python |
| ~3.5 s | █▌ | 2018, Day 11, Part 2, Python (SAT) |
| ~3.5 s | █▌ | 2019, Day 19, Part 1, Python (brute force) |
| ~3.5 s | █▌ | 2019, Day 21, Part 2, Python |
| ~3.5 s | █▌ | 2022, Day 11, Part 2, Python |
| ~3.5 s | █▌ | 2024, Day 07, Part 2, Python (optimized) |
| ~3.5 s | █▌ | 2024, Day 16, Part 2, Python |
| ~3.5 s | █▌ | 2024, Day 16, Parts 1+2, Python |
| ~3 s | █▍ | 2015, Day 17, Part 1, Python |
| ~3 s | █▍ | 2015, Day 17, Part 2, Python |
| ~3 s | █▍ | 2015, Day 20, Part 1, Python |
| ~3 s | █▍ | 2015, Day 25, Part 1, Python |
| ~3 s | █▍ | 2017, Day 21, Parts 1+2, Python |
| ~3 s | █▍ | 2018, Day 18, Part 2, Python |
| ~3 s | █▍ | 2018, Day 19, Part 1, Python (plain simulation) |
| ~3 s | █▍ | 2019, Day 13, Part 2, Python |
| ~3 s | █▍ | 2020, Day 11, Part 2, Python |
| ~3 s | █▍ | 2021, Day 25, Part 1, Python (2D array) |
| ~3 s | █▍ | 2023, Day 12, Part 2, Python |
| ~2.5 s | █▍ | 2019, Day 09, Part 2, Python |
| ~2.5 s | █▍ | 2020, Day 11, Part 1, Python (with dictionaries) |
| ~2.5 s | █▍ | 2020, Day 22, Part 2, Python |
| ~2.5 s | █▍ | 2021, Day 23, Part 1, Python |
| ~2.5 s | █▍ | 2021, Day 23, Part 2, Python |
| ~2.5 s | █▍ | 2022, Day 16, Part 1, Python (DFS only) |
| ~2.5 s | █▍ | 2024, Day 14, Part 2, Python (Minimum Variance) |
| ~2.5 s | █▍ | 2024, Day 22, Part 1, Python |
| ~2.5 s | █▍ | 2025, Day 08, Part 2, Python |
| ~2 s | █▎ | 2016, Day 14, Part 1, Python |
| ~2 s | █▎ | 2018, Day 05, Part 2, Python (single-pass) |
| ~2 s | █▎ | 2018, Day 06, Part 1, Python |
| ~2 s | █▎ | 2018, Day 17, Parts 1+2, Python |
| ~2 s | █▎ | 2020, Day 24, Part 2, Python |
| ~2 s | █▎ | 2021, Day 22, Part 1, Python |
| ~2 s | █▎ | 2022, Day 01, Parts 1+2, x86 DOS Assembly (assembled) |
| ~2 s | █▎ | 2022, Day 14, Part 2, Python (complex numbers) |
| ~2 s | █▎ | 2022, Day 20, Part 1, Python (nested loop) |
| ~2 s | █▎ | 2022, Day 20, Part 2, Python (linked list) |
| ~2 s | █▎ | 2024, Day 16, Part 1, Python |
| ~2 s | █▎ | 2025, Day 02, Part 2, Python (regular expressions) |
| ~1.5 s | █▏ | 2015, Day 13, Part 2, Python |
| ~1.5 s | █▏ | 2016, Day 19, Part 1, Python |
| ~1.5 s | █▏ | 2019, Day 10, Part 1, Python |
| ~1.5 s | █▏ | 2020, Day 11, Part 1, Python (with 2D arrays) |
| ~1.5 s | █▏ | 2020, Day 15, Part 2, C |
| ~1.5 s | █▏ | 2020, Day 17, Part 2, Python |
| ~1.5 s | █▏ | 2022, Day 14, Part 2, Python (coordinate tuples) |
| ~1.5 s | █▏ | 2022, Day 15, Part 2, Python (heuristics and boundary intersection) |
| ~1.5 s | █▏ | 2022, Day 20, Part 2, Python (order table) |
| ~1.5 s | █▏ | 2022, Day 20, Parts 1+2, Python (order table) |
| ~1.5 s | █▏ | 2022, Day 24, Part 2, Python |
| ~1.5 s | █▏ | 2022, Day 24, Parts 1+2, Python |
| ~1.5 s | █▏ | 2023, Day 14, Part 2, Python (complex numbers) |
| ~1.5 s | █▏ | 2023, Day 17, Part 1, Python |
| ~1.5 s | █▏ | 2024, Day 14, Part 2, Python (Unique Positions) |
| ~1.5 s | █▏ | 2025, Day 02, Part 1, Python |
| ~1.5 s | █▏ | 2025, Day 08, Part 1, Python |
| ~1.5 s | █▏ | 2025, Day 10, Part 2, Python (handwritten algebra) |
| ~1 s | █ | 2015, Day 15, Part 1, Python |
| ~1 s | █ | 2015, Day 15, Part 2, Python |
| ~1 s | █ | 2015, Day 18, Part 1, Python |
| ~1 s | █ | 2015, Day 18, Part 2, Python |
| ~1 s | █ | 2015, Day 22, Part 1, Python |
| ~1 s | █ | 2016, Day 15, Part 2, Python |
| ~1 s | █ | 2018, Day 03, Part 2, Python |
| ~1 s | █ | 2018, Day 19, Part 2, Python (host computation) |
| ~1 s | █ | 2019, Day 04, Part 1, Python |
| ~1 s | █ | 2019, Day 04, Part 2, Python |
| ~1 s | █ | 2019, Day 23, Part 2, Python |
| ~1 s | █ | 2021, Day 12, Part 2, Python |
| ~1 s | █ | 2021, Day 15, Part 2, Python (Dijkstra) |
| ~1 s | █ | 2021, Day 17, Part 2, Python |
| ~1 s | █ | 2021, Day 24, Part 2, Python |
| ~1 s | █ | 2022, Day 15, Part 1, Python (set of coordinates) |
| ~1 s | █ | 2023, Day 14, Part 2, Python (coordinate tuples) |
| ~1 s | █ | 2023, Day 22, Part 2, Python |
| ~1 s | █ | 2024, Day 13, Part 1, Python |
| ~800 ms | ▉ | 2023, Day 03, Part 1, Python (list of spans) |
| ~800 ms | ▉ | 2023, Day 22, Part 1, Python |
| ~800 ms | ▉ | 2025, Day 02, Part 2, Python (string maninpulation) |
| ~750 ms | ▉ | 2017, Day 16, Part 2, Python |
| ~750 ms | ▉ | 2017, Day 23, Part 2, Python |
| ~750 ms | ▉ | 2018, Day 06, Part 2, Python |
| ~700 ms | ▉ | 2015, Day 10, Part 1, Python |
| ~700 ms | ▉ | 2019, Day 18, Part 2, Python |
| ~700 ms | ▉ | 2023, Day 23, Part 2, Python (generating and running C code) |
| ~700 ms | ▉ | 2024, Day 19, Part 2, Python |
| ~700 ms | ▉ | 2025, Day 04, Part 2, Python |
| ~600 ms | ▊ | 2019, Day 02, Part 2, Python |
| ~600 ms | ▊ | 2019, Day 20, Part 2, Python |
| ~600 ms | ▊ | 2019, Day 24, Part 2, Python |
| ~600 ms | ▊ | 2020, Day 01, Part 2, Python |
| ~600 ms | ▊ | 2020, Day 23, Part 2, C |
| ~600 ms | ▊ | 2022, Day 20, Parts 1+2, C (linked list) |
| ~600 ms | ▊ | 2023, Day 21, Part 2, Python (edge only) |
| ~600 ms | ▊ | 2024, Day 15, Part 2, Python |
| ~600 ms | ▊ | 2025, Day 10, Part 2, Python (using SciPy) |
| ~500 ms | ▊ | 2016, Day 12, Part 1, Python |
| ~500 ms | ▊ | 2017, Day 14, Part 1, Python |
| ~500 ms | ▊ | 2017, Day 14, Part 2, Python |
| ~500 ms | ▊ | 2018, Day 09, Part 1, Python (array) |
| ~500 ms | ▊ | 2018, Day 14, Part 2, C |
| ~500 ms | ▊ | 2018, Day 23, Part 2, Python |
| ~500 ms | ▊ | 2019, Day 11, Part 1, Python |
| ~500 ms | ▊ | 2019, Day 17, Part 2, Python |
| ~500 ms | ▊ | 2021, Day 17, Part 1, Python |
| ~500 ms | ▊ | 2022, Day 21, Part 1, Python (evil exec hackery) |
| ~500 ms | ▊ | 2022, Day 24, Part 1, Python |
| ~500 ms | ▊ | 2023, Day 14, Part 2, Python (string processing) |
| ~500 ms | ▊ | 2024, Day 12, Part 1, Python |
| ~400 ms | ▋ | 2018, Day 14, Part 1, Python |
| ~400 ms | ▋ | 2021, Day 07, Part 2, Python |
| ~400 ms | ▋ | 2023, Day 03, Part 2, Python (list of spans) |
| ~400 ms | ▋ | 2023, Day 18, Part 2, Python (BFS filling + coordinate compression) |
| ~400 ms | ▋ | 2023, Day 23, Part 1, Python (direct maze DFS) |
| ~400 ms | ▋ | 2025, Day 10, Part 1, Python |
| ~350 ms | ▋ | 2017, Day 20, Part 1, Python |
| ~350 ms | ▋ | 2017, Day 20, Part 2, Python |
| ~350 ms | ▋ | 2018, Day 03, Part 1, Python |
| ~350 ms | ▋ | 2018, Day 20, Parts 1+2, Python (shortcut) |
| ~350 ms | ▋ | 2018, Day 20, Parts 1+2, Python (correct) |
| ~350 ms | ▋ | 2019, Day 19, Part 2, Python (fast search with slope estimation) |
| ~350 ms | ▋ | 2021, Day 18, Part 1, Python |
| ~350 ms | ▋ | 2021, Day 25, Part 1, Python (strings) |
| ~350 ms | ▋ | 2022, Day 17, Part 2, Python |
| ~350 ms | ▋ | 2023, Day 20, Part 2, Python (simulation) |
| ~350 ms | ▋ | 2024, Day 11, Part 1, Python |
| ~300 ms | ▌ | 2019, Day 15, Part 1, Python |
| ~300 ms | ▌ | 2019, Day 15, Part 2, Python |
| ~300 ms | ▌ | 2019, Day 18, Part 1, Python |
| ~300 ms | ▌ | 2020, Day 19, Part 2, Python |
| ~300 ms | ▌ | 2023, Day 10, Part 2, Python (flood fill) |
| ~300 ms | ▌ | 2024, Day 04, Part 1, Python |
| ~300 ms | ▌ | 2024, Day 05, Part 2, Python |
| ~300 ms | ▌ | 2024, Day 05, Parts 1+2, Python |
| ~300 ms | ▌ | 2024, Day 12, Part 2, Python |
| ~300 ms | ▌ | 2025, Day 03, Part 2, Python (DFS+memoization) |
| ~300 ms | ▌ | 2025, Day 03, Parts 1+2, Python (DFS+memoization) |
| ~250 ms | ▌ | 2019, Day 17, Part 1, Python |
| ~250 ms | ▌ | 2020, Day 09, Part 2, Python |
| ~250 ms | ▌ | 2021, Day 05, Part 2, Python |
| ~250 ms | ▌ | 2021, Day 21, Part 2, Python |
| ~250 ms | ▌ | 2024, Day 07, Part 1, Python |
| ~250 ms | ▌ | 2024, Day 25, Part 1, Python |
| ~250 ms | ▌ | 2025, Day 03, Part 1, Python (brute force) |
| ~200 ms | ▍ | 2016, Day 22, Part 1, Python |
| ~200 ms | ▍ | 2017, Day 18, Part 2, Python |
| ~200 ms | ▍ | 2018, Day 09, Part 2, C (CDLL) (including compilation) |
| ~200 ms | ▍ | 2022, Day 20, Parts 1+2, C (order table) |
| ~200 ms | ▍ | 2024, Day 11, Part 2, Python (type-and-frequency) |
| ~200 ms | ▍ | 2024, Day 11, Part 2, Python (DFS + memoization) |
| ~150 ms | ▎ | 2015, Day 04, Part 1, Python |
| ~150 ms | ▎ | 2015, Day 11, Part 1, Python |
| ~150 ms | ▎ | 2015, Day 13, Part 1, Python |
| ~150 ms | ▎ | 2016, Day 16, Part 2, C |
| ~150 ms | ▎ | 2018, Day 11, Part 1, Python |
| ~150 ms | ▎ | 2018, Day 11, Part 2, C (optimized pre-summed matrix) |
| ~150 ms | ▎ | 2018, Day 11, Part 2, C (SAT) |
| ~150 ms | ▎ | 2018, Day 13, Part 2, Python |
| ~150 ms | ▎ | 2019, Day 03, Part 1, Python |
| ~150 ms | ▎ | 2019, Day 03, Part 2, Python |
| ~150 ms | ▎ | 2019, Day 07, Part 1, Python |
| ~150 ms | ▎ | 2019, Day 07, Part 2, Python |
| ~150 ms | ▎ | 2019, Day 21, Part 1, Python |
| ~150 ms | ▎ | 2019, Day 23, Part 1, Python (machines as classes) |
| ~150 ms | ▎ | 2019, Day 23, Part 1, Python (machines as dictionaries) |
| ~150 ms | ▎ | 2020, Day 09, Part 1, Python |
| ~150 ms | ▎ | 2020, Day 14, Part 2, Python |
| ~150 ms | ▎ | 2020, Day 20, Part 2, Python |
| ~150 ms | ▎ | 2021, Day 05, Part 1, Python (using part 2 approach) |
| ~150 ms | ▎ | 2021, Day 07, Part 1, Python |
| ~150 ms | ▎ | 2022, Day 09, Part 2, Python (complex numbers) |
| ~150 ms | ▎ | 2022, Day 18, Part 2, Python |
| ~150 ms | ▎ | 2022, Day 20, Part 1, Python (linked list) |
| ~150 ms | ▎ | 2022, Day 22, Part 2, Python (automatic portals) |
| ~150 ms | ▎ | 2022, Day 23, Part 1, Python |
| ~150 ms | ▎ | 2023, Day 18, Part 1, Python (BFS filling) |
| ~150 ms | ▎ | 2024, Day 05, Part 1, Python |
| ~150 ms | ▎ | 2024, Day 15, Part 1, Python |
| ~150 ms | ▎ | 2024, Day 22, Parts 1+2, C |
| ~150 ms | ▎ | 2025, Day 01, Part 2, Python |
| ~100 ms | ▏ | 2015, Day 09, Part 1, Python |
| ~100 ms | ▏ | 2015, Day 09, Part 2, Python |
| ~100 ms | ▏ | 2016, Day 17, Part 1, Python |
| ~100 ms | ▏ | 2016, Day 19, Part 2, C |
| ~100 ms | ▏ | 2017, Day 05, Part 1, Python |
| ~100 ms | ▏ | 2017, Day 16, Part 1, Python |
| ~100 ms | ▏ | 2018, Day 20, Parts 1+2, Python (new) |
| ~100 ms | ▏ | 2019, Day 11, Part 2, Python |
| ~100 ms | ▏ | 2019, Day 13, Part 1, Python |
| ~100 ms | ▏ | 2019, Day 22, Part 1, Python (full deck simulation) |
| ~100 ms | ▏ | 2021, Day 09, Part 2, Python (using arbitrary seeds) |
| ~100 ms | ▏ | 2023, Day 12, Part 1, Python (approach from part 2) |
| ~100 ms | ▏ | 2023, Day 20, Part 1, Python |
| ~100 ms | ▏ | 2023, Day 24, Part 1, Python |
| <100 ms | ▏ | 2015, Day 01, Part 1, Python |
| <100 ms | ▏ | 2015, Day 01, Part 2, Python |
| <100 ms | ▏ | 2015, Day 02, Part 1, Python |
| <100 ms | ▏ | 2015, Day 02, Part 2, Python |
| <100 ms | ▏ | 2015, Day 03, Part 1, Python |
| <100 ms | ▏ | 2015, Day 03, Part 2, Python |
| <100 ms | ▏ | 2015, Day 05, Part 1, Python |
| <100 ms | ▏ | 2015, Day 05, Part 2, Python |
| <100 ms | ▏ | 2015, Day 07, Parts 1+2, Python |
| <100 ms | ▏ | 2015, Day 08, Part 1, Python |
| <100 ms | ▏ | 2015, Day 08, Part 2, Python |
| <100 ms | ▏ | 2015, Day 12, Part 1, Python |
| <100 ms | ▏ | 2015, Day 12, Part 2, Python |
| <100 ms | ▏ | 2015, Day 14, Part 1, Python |
| <100 ms | ▏ | 2015, Day 14, Part 2, Python |
| <100 ms | ▏ | 2015, Day 16, Part 1, Python |
| <100 ms | ▏ | 2015, Day 16, Part 2, Python |
| <100 ms | ▏ | 2015, Day 19, Part 1, Python |
| <100 ms | ▏ | 2015, Day 19, Part 2, Python (dumb DFS) |
| <100 ms | ▏ | 2015, Day 19, Part 2, Python (greedy DFS) |
| <100 ms | ▏ | 2015, Day 21, Part 1, Python |
| <100 ms | ▏ | 2015, Day 21, Part 2, Python |
| <100 ms | ▏ | 2015, Day 23, Part 1, Python |
| <100 ms | ▏ | 2015, Day 23, Part 2, Python |
| <100 ms | ▏ | 2015, Day 24, Parts 1+2, Python (proper algorithm) |
| <100 ms | ▏ | 2016, Day 01, Part 1, Python |
| <100 ms | ▏ | 2016, Day 01, Part 2, Python |
| <100 ms | ▏ | 2016, Day 02, Part 1, Python |
| <100 ms | ▏ | 2016, Day 02, Part 2, Python |
| <100 ms | ▏ | 2016, Day 03, Part 1, Python |
| <100 ms | ▏ | 2016, Day 03, Part 2, Python |
| <100 ms | ▏ | 2016, Day 04, Part 1, Python |
| <100 ms | ▏ | 2016, Day 04, Part 2, Python |
| <100 ms | ▏ | 2016, Day 06, Part 1, Python |
| <100 ms | ▏ | 2016, Day 06, Part 2, Python |
| <100 ms | ▏ | 2016, Day 07, Part 1, Python |
| <100 ms | ▏ | 2016, Day 07, Part 2, Python |
| <100 ms | ▏ | 2016, Day 08, Parts 1+2, Python |
| <100 ms | ▏ | 2016, Day 09, Part 1, Python |
| <100 ms | ▏ | 2016, Day 09, Part 2, Python |
| <100 ms | ▏ | 2016, Day 10, Part 1, Python |
| <100 ms | ▏ | 2016, Day 10, Part 2, Python |
| <100 ms | ▏ | 2016, Day 13, Part 1, Python |
| <100 ms | ▏ | 2016, Day 13, Part 2, Python |
| <100 ms | ▏ | 2016, Day 15, Part 1, Python |
| <100 ms | ▏ | 2016, Day 16, Part 1, Python |
| <100 ms | ▏ | 2016, Day 18, Part 1, Python |
| <100 ms | ▏ | 2016, Day 20, Part 1, Python |
| <100 ms | ▏ | 2016, Day 20, Part 2, Python |
| <100 ms | ▏ | 2016, Day 21, Part 1, Python |
| <100 ms | ▏ | 2016, Day 21, Part 2, Python |
| <100 ms | ▏ | 2016, Day 22, Part 2, Python |
| <100 ms | ▏ | 2016, Day 23, Part 1, Python |
| <100 ms | ▏ | 2016, Day 23, Part 2, Python |
| <100 ms | ▏ | 2016, Day 24, Part 1, Python |
| <100 ms | ▏ | 2016, Day 24, Part 2, Python |
| <100 ms | ▏ | 2016, Day 25, Part 1, Python |
| <100ms | ▏ | 2017, Day 01, Part 1, Python |
| <100ms | ▏ | 2017, Day 01, Part 2, Python |
| <100 ms | ▏ | 2017, Day 02, Part 1, Python |
| <100 ms | ▏ | 2017, Day 02, Part 2, Python |
| <100 ms | ▏ | 2017, Day 03, Part 1, Python |
| <100 ms | ▏ | 2017, Day 03, Part 2, Python |
| <100 ms | ▏ | 2017, Day 04, Part 1, Python |
| <100 ms | ▏ | 2017, Day 04, Part 2, Python |
| <100 ms | ▏ | 2017, Day 06, Part 1, Python |
| <100 ms | ▏ | 2017, Day 06, Part 2, Python |
| <100 ms | ▏ | 2017, Day 07, Part 1, Python |
| <100 ms | ▏ | 2017, Day 07, Part 2, Python |
| <100 ms | ▏ | 2017, Day 08, Part 1, Python |
| <100 ms | ▏ | 2017, Day 08, Part 2, Python |
| <100 ms | ▏ | 2017, Day 09, Part 1, Python |
| <100 ms | ▏ | 2017, Day 09, Part 2, Python |
| <100 ms | ▏ | 2017, Day 10, Part 1, Python |
| <100 ms | ▏ | 2017, Day 10, Part 2, Python |
| <100 ms | ▏ | 2017, Day 11, Part 1, Python |
| <100 ms | ▏ | 2017, Day 11, Part 2, Python |
| <100 ms | ▏ | 2017, Day 12, Part 1, Python |
| <100 ms | ▏ | 2017, Day 12, Part 2, Python |
| <100 ms | ▏ | 2017, Day 13, Part 1, Python |
| <100 ms | ▏ | 2017, Day 17, Part 1, Python (full simulation with arrays) |
| <100 ms | ▏ | 2017, Day 18, Part 1, Python |
| <100 ms | ▏ | 2017, Day 19, Part 1, Python |
| <100 ms | ▏ | 2017, Day 19, Part 2, Python |
| <100 ms | ▏ | 2017, Day 19, Parts 1+2, Python |
| <100 ms | ▏ | 2017, Day 22, Part 1, Python |
| <100 ms | ▏ | 2017, Day 23, Part 1, Python |
| <100 ms | ▏ | 2018, Day 01, Part 1, Python |
| <100 ms | ▏ | 2018, Day 01, Part 2, Python |
| <100 ms | ▏ | 2018, Day 02, Part 1, Python |
| <100 ms | ▏ | 2018, Day 02, Part 2, Python |
| <100 ms | ▏ | 2018, Day 04, Part 1, Python |
| <100 ms | ▏ | 2018, Day 04, Part 2, Python |
| <100 ms | ▏ | 2018, Day 07, Part 1, Python |
| <100 ms | ▏ | 2018, Day 07, Part 2, Python |
| <100 ms | ▏ | 2018, Day 08, Part 1, Python |
| <100 ms | ▏ | 2018, Day 08, Part 2, Python |
| <100 ms | ▏ | 2018, Day 10, Parts 1+2, Python |
| <100 ms | ▏ | 2018, Day 12, Part 1, Python |
| <100 ms | ▏ | 2018, Day 12, Part 2, Python |
| <100 ms | ▏ | 2018, Day 13, Part 1, Python |
| <100 ms | ▏ | 2018, Day 16, Part 1, Python |
| <100 ms | ▏ | 2018, Day 16, Part 2, Python |
| <100 ms | ▏ | 2018, Day 18, Part 1, Python |
| <100 ms | ▏ | 2018, Day 21, Part 1, Python (host computation) |
| <100 ms | ▏ | 2018, Day 21, Part 2, Python (host computation) |
| <100 ms | ▏ | 2018, Day 22, Part 1, Python |
| <100 ms | ▏ | 2018, Day 23, Part 1, Python |
| <100 ms | ▏ | 2019, Day 01, Part 1, Python |
| <100 ms | ▏ | 2019, Day 01, Part 2, Python |
| <100 ms | ▏ | 2019, Day 02, Part 1, Python |
| <100 ms | ▏ | 2019, Day 05, Part 1, Python |
| <100 ms | ▏ | 2019, Day 05, Part 2, Python |
| <100 ms | ▏ | 2019, Day 06, Part 1, Python |
| <100 ms | ▏ | 2019, Day 06, Part 2, Python |
| <100 ms | ▏ | 2019, Day 08, Part 1, Python |
| <100 ms | ▏ | 2019, Day 08, Part 2, Python |
| <100 ms | ▏ | 2019, Day 09, Part 1, Python |
| <100 ms | ▏ | 2019, Day 12, Part 1, Python |
| <100 ms | ▏ | 2019, Day 14, Part 1, Python |
| <100 ms | ▏ | 2019, Day 14, Part 2, Python |
| <100 ms | ▏ | 2019, Day 20, Part 1, Python |
| <100 ms | ▏ | 2019, Day 22, Part 1, Python (single card tracing) |
| <100 ms | ▏ | 2019, Day 22, Part 2, Python (reverse construction) |
| <100 ms | ▏ | 2019, Day 22, Part 2, Python (forward construction) |
| <100 ms | ▏ | 2019, Day 24, Part 1, Python |
| <100 ms | ▏ | 2020, Day 01, Part 1, Python |
| <100 ms | ▏ | 2020, Day 02, Part 1, Python |
| <100 ms | ▏ | 2020, Day 02, Part 2, Python |
| <100 ms | ▏ | 2020, Day 03, Part 1, Python |
| <100 ms | ▏ | 2020, Day 03, Part 2, Python |
| <100 ms | ▏ | 2020, Day 04, Part 1, Python |
| <100 ms | ▏ | 2020, Day 04, Part 2, Python |
| <100 ms | ▏ | 2020, Day 05, Part 1, Python |
| <100 ms | ▏ | 2020, Day 05, Part 2, Python |
| <100 ms | ▏ | 2020, Day 06, Part 1, Python |
| <100 ms | ▏ | 2020, Day 06, Part 2, Python |
| <100 ms | ▏ | 2020, Day 07, Part 1, Python |
| <100 ms | ▏ | 2020, Day 07, Part 2, Python |
| <100 ms | ▏ | 2020, Day 08, Part 1, Python |
| <100 ms | ▏ | 2020, Day 08, Part 2, Python |
| <100 ms | ▏ | 2020, Day 10, Part 1, Python |
| <100 ms | ▏ | 2020, Day 10, Part 2, Python |
| <100 ms | ▏ | 2020, Day 12, Part 1, Python |
| <100 ms | ▏ | 2020, Day 12, Part 2, Python |
| <100 ms | ▏ | 2020, Day 13, Part 1, Python |
| <100 ms | ▏ | 2020, Day 13, Part 2, Python |
| <100 ms | ▏ | 2020, Day 14, Part 1, Python |
| <100 ms | ▏ | 2020, Day 15, Part 1, Python |
| <100 ms | ▏ | 2020, Day 16, Part 1, Python |
| <100 ms | ▏ | 2020, Day 16, Part 2, Python |
| <100 ms | ▏ | 2020, Day 17, Part 1, Python |
| <100 ms | ▏ | 2020, Day 18, Part 1, Python |
| <100 ms | ▏ | 2020, Day 18, Part 2, Python (manual parsing) |
| <100 ms | ▏ | 2020, Day 18, Part 2, Python (eval hack) |
| <100 ms | ▏ | 2020, Day 19, Part 1, Python |
| <100 ms | ▏ | 2020, Day 20, Part 1, Python |
| <100 ms | ▏ | 2020, Day 21, Parts 1+2, Python |
| <100 ms | ▏ | 2020, Day 22, Part 1, Python |
| <100 ms | ▏ | 2020, Day 23, Part 1, Python |
| <100 ms | ▏ | 2020, Day 24, Part 1, Python |
| <100 ms | ▏ | 2021, Day 01, Part 1, Python |
| <100 ms | ▏ | 2021, Day 01, Part 2, Python |
| <100 ms | ▏ | 2021, Day 02, Part 1, Python (using complex numbers) |
| <100 ms | ▏ | 2021, Day 02, Part 1, Python (using separate components) |
| <100 ms | ▏ | 2021, Day 02, Part 2, Python |
| <100 ms | ▏ | 2021, Day 03, Part 1, Python |
| <100 ms | ▏ | 2021, Day 03, Part 2, Python |
| <100 ms | ▏ | 2021, Day 04, Part 1, Python |
| <100 ms | ▏ | 2021, Day 04, Part 2, Python |
| <100 ms | ▏ | 2021, Day 05, Part 1, Python (coordinate list) |
| <100 ms | ▏ | 2021, Day 06, Part 1, Python |
| <100 ms | ▏ | 2021, Day 06, Part 2, Python |
| <100 ms | ▏ | 2021, Day 08, Part 1, Python |
| <100 ms | ▏ | 2021, Day 08, Part 2, Python |
| <100 ms | ▏ | 2021, Day 09, Part 1, Python |
| <100 ms | ▏ | 2021, Day 09, Part 2, Python (using low point seeds) |
| <100 ms | ▏ | 2021, Day 10, Part 1, Python |
| <100 ms | ▏ | 2021, Day 10, Part 2, Python |
| <100 ms | ▏ | 2021, Day 11, Part 1, Python |
| <100 ms | ▏ | 2021, Day 11, Part 2, Python |
| <100 ms | ▏ | 2021, Day 12, Part 1, Python |
| <100 ms | ▏ | 2021, Day 13, Part 1, Python |
| <100 ms | ▏ | 2021, Day 13, Part 2, Python |
| <100 ms | ▏ | 2021, Day 14, Part 1, Python |
| <100 ms | ▏ | 2021, Day 14, Part 2, Python |
| <100 ms | ▏ | 2021, Day 15, Part 1, Python |
| <100 ms | ▏ | 2021, Day 16, Part 1, Python |
| <100 ms | ▏ | 2021, Day 16, Part 2, Python |
| <100 ms | ▏ | 2021, Day 20, Part 1, Python |
| <100 ms | ▏ | 2021, Day 21, Part 1, Python |
| <100 ms | ▏ | 2022, Day 01, Part 1, Python |
| <100 ms | ▏ | 2022, Day 01, Part 2, Python |
| <100 ms | ▏ | 2022, Day 02, Part 1, Python |
| <100 ms | ▏ | 2022, Day 02, Part 2, Python |
| <100 ms | ▏ | 2022, Day 03, Part 1, Python |
| <100 ms | ▏ | 2022, Day 03, Part 2, Python |
| <100 ms | ▏ | 2022, Day 04, Part 1, Python |
| <100 ms | ▏ | 2022, Day 04, Part 2, Python |
| <100 ms | ▏ | 2022, Day 05, Part 1, Python |
| <100 ms | ▏ | 2022, Day 05, Part 2, Python |
| <100 ms | ▏ | 2022, Day 06, Part 1, Python |
| <100 ms | ▏ | 2022, Day 06, Part 2, Python |
| <100 ms | ▏ | 2022, Day 07, Parts 1+2, Python |
| <100 ms | ▏ | 2022, Day 08, Part 1, Python |
| <100 ms | ▏ | 2022, Day 08, Part 2, Python |
| <100 ms | ▏ | 2022, Day 09, Part 1, Python (coordinate tuples) |
| <100 ms | ▏ | 2022, Day 09, Part 2, Python (coordinate tuples) |
| <100 ms | ▏ | 2022, Day 09, Part 1, Python (complex numbers) |
| <100 ms | ▏ | 2022, Day 10, Part 1, Python |
| <100 ms | ▏ | 2022, Day 10, Part 2, Python |
| <100 ms | ▏ | 2022, Day 11, Part 1, Python |
| <100 ms | ▏ | 2022, Day 12, Parts 1+2, Python |
| <100 ms | ▏ | 2022, Day 13, Part 1, Python |
| <100 ms | ▏ | 2022, Day 13, Part 2, Python (with proper parsing and comparison) |
| <100 ms | ▏ | 2022, Day 13, Part 2, Python (shortcut, list-based) |
| <100 ms | ▏ | 2022, Day 13, Part 2, Python (shortcut, string-based) |
| <100 ms | ▏ | 2022, Day 14, Part 1, Python (complex numbers) |
| <100 ms | ▏ | 2022, Day 14, Part 1, Python (coordinate tuples) |
| <100 ms | ▏ | 2022, Day 14, Part 2, Python (sweep approach) |
| <100 ms | ▏ | 2022, Day 17, Part 1, Python |
| <100 ms | ▏ | 2022, Day 18, Part 1, Python |
| <100 ms | ▏ | 2022, Day 20, Part 1, Python (order table) |
| <100 ms | ▏ | 2022, Day 21, Part 1, Python |
| <100 ms | ▏ | 2022, Day 21, Part 2, Python (equation inversion) |
| <100 ms | ▏ | 2022, Day 21, Parts 1+2, Python (equation inversion) |
| <100 ms | ▏ | 2022, Day 21, Part 2, Python (linear solver) |
| <100 ms | ▏ | 2022, Day 21, Parts 1+2, Python (linear solver) |
| <100 ms | ▏ | 2022, Day 22, Part 1, Python |
| <100 ms | ▏ | 2022, Day 22, Part 2, Python (hard-coded portals) |
| <100 ms | ▏ | 2022, Day 25, Part 1, Python (with conversions) |
| <100 ms | ▏ | 2022, Day 25, Part 1, Python (direct addition) |
| <100 ms | ▏ | 2023, Day 01, Part 1, Python |
| <100 ms | ▏ | 2023, Day 01, Part 2, Python |
| <100 ms | ▏ | 2023, Day 02, Part 1, Python |
| <100 ms | ▏ | 2023, Day 02, Part 2, Python |
| <100 ms | ▏ | 2023, Day 03, Part 1, Python (complex number dictionary) |
| <100 ms | ▏ | 2023, Day 03, Part 2, Python (complex number dictionary) |
| <100 ms | ▏ | 2023, Day 04, Part 1, Python |
| <100 ms | ▏ | 2023, Day 04, Part 2, Python |
| <100 ms | ▏ | 2023, Day 05, Part 1, Python |
| <100 ms | ▏ | 2023, Day 05, Part 2, Python (interval processing) |
| <100 ms | ▏ | 2023, Day 06, Part 1, Python |
| <100 ms | ▏ | 2023, Day 06, Part 2, Python (quadratic equation solving) |
| <100 ms | ▏ | 2023, Day 07, Part 1, Python |
| <100 ms | ▏ | 2023, Day 07, Part 2, Python |
| <100 ms | ▏ | 2023, Day 08, Part 1, Python |
| <100 ms | ▏ | 2023, Day 08, Part 2, Python |
| <100 ms | ▏ | 2023, Day 09, Part 1, Python |
| <100 ms | ▏ | 2023, Day 09, Part 2, Python |
| <100 ms | ▏ | 2023, Day 10, Part 1, Python |
| <100 ms | ▏ | 2023, Day 10, Part 2, Python (shoelace/Pick) |
| <100 ms | ▏ | 2023, Day 11, Part 1, Python (duplicating rows and columns) |
| <100 ms | ▏ | 2023, Day 11, Part 1, Python (coordinate translation) |
| <100 ms | ▏ | 2023, Day 11, Part 2, Python (coordinate translation) |
| <100 ms | ▏ | 2023, Day 13, Part 1, Python |
| <100 ms | ▏ | 2023, Day 13, Part 2, Python |
| <100 ms | ▏ | 2023, Day 14, Part 1, Python (coordinate tuples) |
| <100 ms | ▏ | 2023, Day 14, Part 1, Python (complex numbers) |
| <100 ms | ▏ | 2023, Day 14, Part 1, Python (string processing) |
| <100 ms | ▏ | 2023, Day 15, Part 1, Python |
| <100 ms | ▏ | 2023, Day 15, Part 2, Python |
| <100 ms | ▏ | 2023, Day 16, Part 1, Python |
| <100 ms | ▏ | 2023, Day 18, Part 1, Python (shoelace/Pick) |
| <100 ms | ▏ | 2023, Day 18, Part 2, Python (shoelace/Pick) |
| <100 ms | ▏ | 2023, Day 19, Part 1, Python |
| <100 ms | ▏ | 2023, Day 19, Part 2, Python |
| <100 ms | ▏ | 2023, Day 20, Part 2, Python (input graph parsing) |
| <100 ms | ▏ | 2023, Day 21, Part 1, Python |
| <100 ms | ▏ | 2023, Day 24, Part 2, Python (single hailstone triple) |
| <100 ms | ▏ | 2023, Day 24, Part 2, Python (better numerical stability) |
| <100 ms | ▏ | 2024, Day 01, Part 1, Python |
| <100 ms | ▏ | 2024, Day 01, Part 2, Python |
| <100 ms | ▏ | 2024, Day 02, Part 1, Python |
| <100 ms | ▏ | 2024, Day 02, Part 2, Python |
| <100 ms | ▏ | 2024, Day 03, Part 1, Python |
| <100 ms | ▏ | 2024, Day 03, Part 2, Python |
| <100 ms | ▏ | 2024, Day 04, Part 2, Python |
| <100 ms | ▏ | 2024, Day 06, Part 1, Python |
| <100 ms | ▏ | 2024, Day 08, Part 1, Python |
| <100 ms | ▏ | 2024, Day 08, Part 2, Python |
| <100 ms | ▏ | 2024, Day 09, Part 1, Python |
| <100 ms | ▏ | 2024, Day 09, Part 2, Python (speed-optimized) |
| <100 ms | ▏ | 2024, Day 10, Part 1, Python |
| <100 ms | ▏ | 2024, Day 10, Part 2, Python |
| <100 ms | ▏ | 2024, Day 13, Part 2, Python |
| <100 ms | ▏ | 2024, Day 14, Part 1, Python |
| <100 ms | ▏ | 2024, Day 14, Part 2, Python (Independent Axis Minimum Variance) |
| <100 ms | ▏ | 2024, Day 17, Part 1, Python |
| <100 ms | ▏ | 2024, Day 17, Part 2, Python (puzzle input specific) |
| <100 ms | ▏ | 2024, Day 17, Part 2, Python (generic) |
| <100 ms | ▏ | 2024, Day 18, Part 1, Python |
| <100 ms | ▏ | 2024, Day 18, Part 2, Python (binary search) |
| <100 ms | ▏ | 2024, Day 19, Part 1, Python |
| <100 ms | ▏ | 2024, Day 21, Part 1, Python |
| <100 ms | ▏ | 2024, Day 21, Part 2, Python |
| <100 ms | ▏ | 2024, Day 23, Part 1, Python |
| <100 ms | ▏ | 2024, Day 23, Part 2, Python |
| <100 ms | ▏ | 2024, Day 24, Part 1, Python |
| <100 ms | ▏ | 2024, Day 24, Part 2, Python |
| <100 ms | ▏ | 2025, Day 01, Part 1, Python |
| <100 ms | ▏ | 2025, Day 03, Part 2, Python (greedy algorithm) |
| <100 ms | ▏ | 2025, Day 04, Part 1, Python |
| <100 ms | ▏ | 2025, Day 05, Part 1, Python |
| <100 ms | ▏ | 2025, Day 05, Part 2, Python |
| <100 ms | ▏ | 2025, Day 06, Part 1, Python (using eval) |
| <100 ms | ▏ | 2025, Day 06, Part 1, Python (safe) |
| <100 ms | ▏ | 2025, Day 06, Part 2, Python (using eval) |
| <100 ms | ▏ | 2025, Day 06, Part 2, Python (safe) |
| <100 ms | ▏ | 2025, Day 07, Part 1, Python |
| <100 ms | ▏ | 2025, Day 07, Part 2, Python (dictionary) |
| <100 ms | ▏ | 2025, Day 07, Part 2, Python (list) |
| <100 ms | ▏ | 2025, Day 09, Part 1, Python |
| <100 ms | ▏ | 2025, Day 11, Part 1, Python |
| <100 ms | ▏ | 2025, Day 11, Part 2, Python (tagging) |
| <100 ms | ▏ | 2025, Day 11, Part 2, Python (partial paths) |
| <100 ms | ▏ | 2025, Day 12, Part 1, Python |