Skip to content

Latest commit

 

History

History
1461 lines (1452 loc) · 109 KB

STATS.md

File metadata and controls

1461 lines (1452 loc) · 109 KB

Solution Statistics

Table of Contents:

All Solutions

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
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)
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
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)
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
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)
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
210 bytes ~350 ms 2017, Day 20, Part 1, Python
290 bytes █▍ ~350 ms 2017, Day 20, Part 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)
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
631 bytes ██▉ <100 ms 2018, Day 16, Part 1, Python
812 bytes ███▋ <100 ms 2018, Day 16, Part 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)
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
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
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
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
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
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)
250 bytes █▎ <100 ms 2022, Day 21, Part 1, Python
472 bytes ██▏ <100 ms 2022, Day 21, Part 2, Python (equation inversion)
318 bytes █▌ <100 ms 2022, Day 21, Part 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
395 bytes █▉ ~500 ms 2022, Day 24, Part 1, Python
449 bytes ██▏ ~1.5 s █▏ 2022, Day 24, Part 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

Solutions by Size

Size Day, Part, Solution
1128 bytes █████ 2019, Day 17, Part 2, Python
1106 bytes ████▉ 2019, Day 25, Part 1, Python
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
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
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)
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)
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
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)
488 bytes ██▎ 2019, Day 21, Part 1, Python
480 bytes ██▎ 2018, Day 13, 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 ██▏ 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 ██▏ 2023, Day 25, Part 1, Python
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)
438 bytes ██ 2021, Day 16, 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)
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 ██ 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 █▉ 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)
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)
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 █▊ 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 █▊ 2021, Day 20, Part 1, Python
365 bytes █▊ 2023, Day 12, Part 1, Python (brute force)
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
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
347 bytes █▋ 2020, Day 11, Part 1, Python (with 2D arrays)
347 bytes █▋ 2020, Day 20, Part 1, 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
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
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
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)
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
323 bytes █▌ 2023, Day 12, Part 1, Python (approach from part 2)
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)
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)
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)
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)
299 bytes █▍ 2017, Day 17, Part 2, C (full simulation with circular list)
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
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
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 █▍ 2018, Day 22, Part 1, Python
279 bytes █▍ 2022, Day 09, Part 2, Python (complex numbers)
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
275 bytes █▍ 2015, Day 19, Part 1, 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
269 bytes █▎ 2019, Day 24, Part 1, Python
269 bytes █▎ 2020, Day 11, Part 1, Python (with dictionaries)
266 bytes █▎ 2022, Day 20, Part 2, Python (nested loop)
265 bytes █▎ 2023, Day 24, Part 1, Python
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
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
255 bytes █▎ 2018, Day 06, 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
250 bytes █▎ 2022, Day 21, Part 1, Python
246 bytes █▎ 2018, Day 07, Part 1, Python
246 bytes █▎ 2023, Day 01, Part 2, Python
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)
240 bytes █▏ 2015, Day 19, Part 2, Python (dumb DFS)
238 bytes █▏ 2023, Day 08, 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)
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
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
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)
220 bytes █▏ 2017, Day 22, Part 1, Python
220 bytes █▏ 2021, Day 12, Part 1, Python
220 bytes █▏ 2022, Day 08, 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
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
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
202 bytes 2017, Day 03, Part 2, Python
202 bytes 2020, Day 07, Part 1, Python
202 bytes 2023, Day 08, Part 1, Python
201 bytes 2018, Day 11, Part 1, Python
201 bytes 2023, Day 14, Part 1, Python (string processing)
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)
198 bytes 2016, Day 14, 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)
194 bytes 2017, Day 11, Part 2, Python
194 bytes 2021, Day 21, Part 1, Python
191 bytes 2020, Day 12, Part 2, Python
191 bytes 2023, Day 21, Part 1, Python
189 bytes 2022, Day 20, Part 2, Python (order table)
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)
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
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
178 bytes 2016, Day 04, Part 1, Python
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
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)
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)
164 bytes 2022, Day 10, Part 2, Python
163 bytes 2018, Day 08, Part 1, Python
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
154 bytes 2017, Day 15, Part 1, Python
154 bytes 2023, Day 09, Part 1, Python
153 bytes 2022, Day 18, Part 1, Python
151 bytes 2016, Day 04, Part 2, Python
151 bytes 2017, Day 02, Part 2, Python
150 bytes 2016, Day 18, Part 2, Python
150 bytes 2018, Day 23, Part 1, Python
149 bytes 2017, Day 13, Part 1, Python
149 bytes 2017, Day 23, Part 2, Python
149 bytes 2019, Day 02, Part 1, Python
148 bytes 2015, Day 20, Part 2, 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
144 bytes 2020, Day 02, Part 2, Python
144 bytes 2020, Day 09, Part 1, Python
143 bytes 2016, Day 03, Part 2, 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
141 bytes 2015, Day 20, Part 1, Python
138 bytes 2021, Day 06, Part 2, 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)
135 bytes 2018, Day 02, Part 2, 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
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
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
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
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)
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
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
91 bytes 2022, Day 02, Part 2, Python
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
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
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

Solutions by Runtime

Runtime Day, Part, Solution
~10 h █████ 2017, Day 17, Part 2, Python (full simulation with circular list)
~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)
~20 s ██▏ 2018, Day 14, Part 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
~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
~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
~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 █▋ 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 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 █▍ 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 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 █▎ 2020, Day 24, Part 2, Python
~2 s █▎ 2021, Day 22, Part 1, Python
~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)
~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 24, Part 2, Python
~1.5 s █▏ 2023, Day 14, Part 2, Python (complex numbers)
~1.5 s █▏ 2023, Day 17, Part 1, Python
~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
~800 ms 2023, Day 03, Part 1, Python (list of spans)
~800 ms 2023, Day 22, Part 1, Python
~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)
~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 2023, Day 21, Part 2, Python (edge only)
~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)
~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)
~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 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)
~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)
~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
~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)
~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)
~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 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 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 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 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 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 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 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 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 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 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, Part 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)