{"id":22783998,"url":"https://github.com/jraams/aoc-2023","last_synced_at":"2026-05-05T05:34:07.466Z","repository":{"id":210285047,"uuid":"726178715","full_name":"JRaams/aoc-2023","owner":"JRaams","description":"Advent Of Code 2023 Solutions using TypeScript ","archived":false,"fork":false,"pushed_at":"2023-12-26T11:54:29.000Z","size":595,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-05T16:48:01.330Z","etag":null,"topics":["adventofcode","deno","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JRaams.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-01T17:47:23.000Z","updated_at":"2023-12-01T18:11:31.000Z","dependencies_parsed_at":"2025-02-05T16:42:55.110Z","dependency_job_id":"c29d0dbb-18b6-49f7-840e-58796f481086","html_url":"https://github.com/JRaams/aoc-2023","commit_stats":null,"previous_names":["jraams/aoc-2023"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JRaams%2Faoc-2023","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JRaams%2Faoc-2023/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JRaams%2Faoc-2023/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JRaams%2Faoc-2023/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JRaams","download_url":"https://codeload.github.com/JRaams/aoc-2023/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246334455,"owners_count":20760646,"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":["adventofcode","deno","typescript"],"created_at":"2024-12-11T22:09:56.869Z","updated_at":"2026-05-05T05:34:07.423Z","avatar_url":"https://github.com/JRaams.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Advent of Code 2023\n\nhttps://adventofcode.com/2023 by [Eric Wastl](http://was.tl/)\n\nSolutions using TypeScript \\w Deno v1.38\n\n![Home page ascii art](./assets/home.png)\n\n### 1. Requirements\n\n- Deno https://docs.deno.com/runtime/manual/getting_started/installation\n\n### 2. Running\n\nGo to the folder of the desired day\n\n`cd 01`\n\nRun part A or B, while allowing all permissions\n\n`deno run --allow-read a.ts`\n\nOR\n\n`deno run --allow-read [daynumber]/[part].ts`\n\nFor example: `deno run --allow-read 01/a.ts`\n\n### 3. Testing\n\n`cd 01`\n\n`deno test .`\n\n### 4. Debugging\n\nDebugging in Visual Studio Code\n\n1. Open the desired file in the editor\n\n2. Set breakpoints\n\n3. Press F5\n\n### 5. Days\n\n1. [**Trebuchet?!**] Checking strings for first and last appearances of\n   substrings\n2. [**Cube Conundrum**] Bag \u0026 cube game, parsing input lines by extracting\n   numbers\n3. [**Gear Ratios**] Parsing a giant grid with multi column numbers\n4. [**Scratchcards**] Lidl recursion on scratchcard winnings\n5. [**If You Give A Seed A Fertilizer**] Collapsing multiple ranges of very\n   large numbers\n6. [**Wait For It**] Quick maths with quadratic formula\n7. [**Camel Cards**] Poker with joker cards\n8. [**Haunted Wasteland**] Simultaneous node traversal with LCM\n9. [**Mirage Maintenance**] Predicting next value of number sequence via\n   extrapolation\n10. [**Pipe Maze**] Grid problem with multiple connected pipes creating a single\n    continuous loop. Using a parity counter to keep track of passed walls to\n    calculate area inside the loop.\n11. [**Cosmic Expansion**] Calculating distances of all combinations of items in\n    an expanding grid.\n12. [**Hot Springs**] Generating and validating arrangements of strings with\n    joker characters\n13. [**Point of Incidence**] Finding lines between columns and rows on grids to\n    fold over and create a mirror image\n14. [**Parabolic Reflector Dish**] Rolling balls NESW on a tilting grid, cycle\n    detection to prevent doing this a literal billion times.\n15. [**Lens Library**] Creating a simple hashing function \u0026 some simple array\n    operations (Did day 5 and 15 get swapped..?)\n16. [**The Floor Will Be Lava**] Manouvering a light beam through a grid of\n    lasers with offset mirrors, tricky rotations.\n17. [**Clumsy Crucible**] Modified Dijkstra's algorithm with a twist: maximum of\n    3 steps in the same direction then a required 90 degree turn. Using a heap\n    as priority queue to get candidates for the next node based on weight.\n18. [**Lavaduct Lagoon**] Calculating area of polynomal by first generating\n    points on a grid followed by use of shoelace formula and Pick's theorem to\n    find whole integer points inside the trench. Finally adding the whole trench\n    points to said number to get our solution.\n19. [**Aplenty**] Day 5 all over again: finding valid ranges of very large ints\n20. [**Pulse Propagation**] Mini electronic machine with low/high pulses and\n    boolean operations, cycle detection like day 14.\n21. [**Step Counter**] Counting reachable positions in an infinitely repeating\n    grid, using lagrange interpolation to predict values very far away.\n22. [**Sand Slabs**] Falling jenga block simulation (without tilting physics)\n23. [**A Long Walk**] Finding longest possible path start-end in a maze-like\n    grid\n24. [**Never Tell Me The Odds**] Calculating intersections between multiple\n    linear equations (a) and creating an intersecting line in 3D out of thin air\n    (b).\n25. [**Snowverload**] Splitting up a graph of nodes by cutting 3 connections.\n\n### 6. Solution runtime\n\n![Bar chart of solution runtime in ms](./gnuplot/runtimes.png)\n\nNotes:\n\n1. Day 12 rewritten in Go (1.3 ms / 44 ms [32 ms with goroutines]) vs Deno (34\n   ms / 270 ms)\n2. Day 14 rewritten in Rust (0.716 ms / 10 ms) vs Deno (20 ms / 763 ms)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjraams%2Faoc-2023","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjraams%2Faoc-2023","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjraams%2Faoc-2023/lists"}