{"id":16870405,"url":"https://github.com/narimiran/adventofcode2020","last_synced_at":"2025-03-22T07:31:01.204Z","repository":{"id":115374692,"uuid":"317016362","full_name":"narimiran/AdventOfCode2020","owner":"narimiran","description":"My solutions for AoC 2020","archived":false,"fork":false,"pushed_at":"2024-11-29T18:07:38.000Z","size":130,"stargazers_count":29,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-15T04:46:08.554Z","etag":null,"topics":["advent","advent-of-code","advent-of-code-2020","adventofcode","adventofcode2020","nim","nim-lang","python","racket"],"latest_commit_sha":null,"homepage":"","language":"Nim","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/narimiran.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-11-29T18:28:26.000Z","updated_at":"2024-11-29T18:07:41.000Z","dependencies_parsed_at":"2023-03-13T13:03:31.323Z","dependency_job_id":null,"html_url":"https://github.com/narimiran/AdventOfCode2020","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/narimiran%2FAdventOfCode2020","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/narimiran%2FAdventOfCode2020/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/narimiran%2FAdventOfCode2020/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/narimiran%2FAdventOfCode2020/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/narimiran","download_url":"https://codeload.github.com/narimiran/AdventOfCode2020/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244924983,"owners_count":20532873,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["advent","advent-of-code","advent-of-code-2020","adventofcode","adventofcode2020","nim","nim-lang","python","racket"],"created_at":"2024-10-13T15:04:15.078Z","updated_at":"2025-03-22T07:31:01.198Z","avatar_url":"https://github.com/narimiran.png","language":"Nim","readme":"# Advent of Code 2020\n\nAll my Advent of Code repos:\n\n* [AoC 2015 in Nim, Python](https://github.com/narimiran/advent_of_code_2015)\n* [AoC 2016 in Python, Clojure (+ visualizations)](https://github.com/narimiran/advent_of_code_2016)\n* [AoC 2017 in Nim, OCaml, Python](https://github.com/narimiran/AdventOfCode2017)\n* [AoC 2018 in Nim, Python, Racket](https://github.com/narimiran/AdventOfCode2018)\n* [AoC 2019 in OCaml, Python](https://github.com/narimiran/AdventOfCode2019)\n* [AoC 2020 in Nim, one liner-y Python, Racket](https://github.com/narimiran/AdventOfCode2020) (this repo)\n* [AoC 2021 in Python, Racket](https://github.com/narimiran/AdventOfCode2021)\n* [AoC 2022 in Python, Clojure](https://github.com/narimiran/AdventOfCode2022)\n* [AoC 2023 in Clojure](https://github.com/narimiran/AdventOfCode2023)\n* [AoC 2024 in Clojure (Clerk notebooks)](https://github.com/narimiran/aoc2024)\n\n\n\n\u0026nbsp;\n\n\n## Solutions\n\n\n\nTask                                                                    | Nim                        | Python                      | Racket                        | Comments (for Nim solutions)\n---                                                                     | ---                        | ---                         | ---                           | ---\n[Day 1: Report Repair](https://adventofcode.com/2020/day/1)             | [day01.nim](nim/day01.nim) | [day01.py](python/day01.py) | [day01.rkt](racket/day01.rkt) | Small check `elif s[i] + s[j] \u003c 2020:` makes the whole program ~4x faster.\n[Day 2: Password Philosophy](https://adventofcode.com/2020/day/2)       | [day02.nim](nim/day02.nim) | [day02.py](python/day02.py) | [day02.rkt](racket/day02.rkt) | `scanf` useful as always.\n[Day 3: Toboggan Trajectory](https://adventofcode.com/2020/day/3)       | [day03.nim](nim/day03.nim) | [day03.py](python/day03.py) | [day03.rkt](racket/day03.rkt) | Keeping it below 20 lines :)\n[Day 4: Passport Processing](https://adventofcode.com/2020/day/4)       | [day04.nim](nim/day04.nim) | [day04.py](python/day04.py) | [day04.rkt](racket/day04.rkt) | Had a nasty early morning bug with `if not v.len == 9`. Argh.\n[Day 5: Binary Boarding](https://adventofcode.com/2020/day/5)           | [day05.nim](nim/day05.nim) | [day05.py](python/day05.py) | [day05.rkt](racket/day05.rkt) | Traversing a sorted list is more efficient than looking for every number in unsorted one.\n[Day 6: Custom Customs](https://adventofcode.com/2020/day/6)            | [day06.nim](nim/day06.nim) | [day06.py](python/day06.py) | [day06.rkt](racket/day06.rkt) | Classic AoC-use-sets tasks.\n[Day 7: Handy Haversacks](https://adventofcode.com/2020/day/7)          | [day07.nim](nim/day07.nim) | [day07.py](python/day07.py) | [day07.rkt](racket/day07.rkt) | Babushka bag = Bagushka.\n[Day 8: Handheld Halting](https://adventofcode.com/2020/day/8)          | [day08.nim](nim/day08.nim) | [day08.py](python/day08.py) | [day08.rkt](racket/day08.rkt) | Faster than it looks.\n[Day 9: Encoding Error](https://adventofcode.com/2020/day/9)            | [day09.nim](nim/day09.nim) | [day09.py](python/day09.py) | [day09.rkt](racket/day09.rkt) | Sliding slice sum.\n[Day 10: Adapter Array](https://adventofcode.com/2020/day/10)           | [day10.nim](nim/day10.nim) | [day10.py](python/day10.py) | [day10.rkt](racket/day10.rkt) | `CountTable` to the rescue.\n[Day 11: Seating System](https://adventofcode.com/2020/day/11)          | [day11.nim](nim/day11.nim) |                             |                               | The ugliest and the slowest solution so far.\n[Day 12: Rain Risk](https://adventofcode.com/2020/day/12)               | [day12.nim](nim/day12.nim) | [day12.py](python/day12.py) | [day12.rkt](racket/day12.rkt) | Using complex numbers is s[o][1][o][2][o][3][o][4] last Tuesday. No `Complex` this time.\n[Day 13: Shuttle Search](https://adventofcode.com/2020/day/13)          | [day13.nim](nim/day13.nim) | [day13.py](python/day13.py) | [day13.rkt](racket/day13.rkt) | Yeah yeah, [CRT](https://en.wikipedia.org/wiki/Chinese_remainder_theorem), but it took me way too long to implement it correctly.\n[Day 14: Docking Data](https://adventofcode.com/2020/day/14)            | [day14.nim](nim/day14.nim) |                             |                               | Good luck trying to understand what's going on.\n[Day 15: Rambunctious Recitation](https://adventofcode.com/2020/day/15) | [day15.nim](nim/day15.nim) |                             |                               | Boring.\n[Day 16: Ticket Translation](https://adventofcode.com/2020/day/16)      | [day16.nim](nim/day16.nim) |                             |                               | Naming is hard.\n[Day 17: Conway Cubes](https://adventofcode.com/2020/day/17)            | [day17.nim](nim/day17.nim) |                             |                               | Nobody notices your 9 nested for-loops if you hide them in a template.\n[Day 18: Operation Order](https://adventofcode.com/2020/day/18)         | [day18.nim](nim/day18.nim) |                             |                               | Template and streams make this one really elegant.\n[Day 19: Monster Messages](https://adventofcode.com/2020/day/19)        | [day19.nim](nim/day19.nim) |                             |                               | My first experience with `npeg`.\n[Day 20: Jurassic Jigsaw](https://adventofcode.com/2020/day/20)         |                            |                             |                               |\n[Day 21: Allergen Assessment](https://adventofcode.com/2020/day/21)     | [day21.nim](nim/day21.nim) |                             |                               | Day 16, part 2 vibes.\n[Day 22: Crab Combat](https://adventofcode.com/2020/day/22)             | [day22.nim](nim/day22.nim) |                             |                               | Deque Deck for Crab Combat.\n[Day 23: Crab Cups](https://adventofcode.com/2020/day/23)               | [day23.nim](nim/day23.nim) |                             |                               | No Linked List for Crab Cups: 10x faster and lighter (less memory usage).\n[Day 24: Lobby Layout](https://adventofcode.com/2020/day/24)            | [day24.nim](nim/day24.nim) |                             |                               | Read [redblobgames](https://www.redblobgames.com/grids/hexagons/) if you haven't already.\n[Day 25: Combo Breaker](https://adventofcode.com/2020/day/25)           | [day25.nim](nim/day25.nim) |                             |                               |\n\n\n\n[1]: https://github.com/narimiran/advent_of_code_2016/blob/master/python/day_01.py\n[2]: https://github.com/narimiran/advent_of_code_2016/blob/master/python/day_02.py\n[3]: https://github.com/narimiran/AdventOfCode2017/blob/master/nim/day19.nim\n[4]: https://github.com/narimiran/AdventOfCode2017/blob/master/python/day22.py\n\n\n\n## Run times\n\n* Nim version 1.5.1 (devel)\n* compiled with `-d:danger --gc:arc`\n* CPU: AMD Ryzen 3700x @ 3.6 GHz (Linux 5.4)\n\nThe reported results are the average of 20 runs.\n\n```\n01     0.72 ms\n02     0.82 ms\n03     0.63 ms\n04     1.23 ms\n05     0.80 ms\n06     0.96 ms\n07     1.89 ms\n08     1.06 ms\n09     1.01 ms\n10     0.72 ms\n11    26.66 ms\n12     0.93 ms\n13     0.63 ms\n14    11.57 ms\n15   583.13 ms\n16     4.62 ms\n17    64.36 ms\n18     1.48 ms\n19    17.52 ms\n20    12.16 ms\n21     1.86 ms\n22     1.06 ms\n23   208.55 ms\n24    16.32 ms\n25     5.42 ms\n--------------\n        966 ms\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnarimiran%2Fadventofcode2020","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnarimiran%2Fadventofcode2020","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnarimiran%2Fadventofcode2020/lists"}