Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/armcknight/adventofcode
Solutions for https://adventofcode.com/ 🎄
https://github.com/armcknight/adventofcode
advent-of-code aoc challenge challenges swift
Last synced: about 2 months ago
JSON representation
Solutions for https://adventofcode.com/ 🎄
- Host: GitHub
- URL: https://github.com/armcknight/adventofcode
- Owner: armcknight
- Created: 2020-12-10T04:47:28.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-12-11T23:33:58.000Z (about 1 year ago)
- Last Synced: 2024-10-13T17:48:01.571Z (3 months ago)
- Topics: advent-of-code, aoc, challenge, challenges, swift
- Language: Swift
- Homepage:
- Size: 1.89 MB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# AdventOfCode
My solutions to challenges at https://adventofcode.com.
# TODO
- [ ] Generate the README from a template, with the following things automatically added:
- [ ] Parse the output from `make benchmark` to extract a table of the runtimes to insert into this README at the bottom, after the stats.
- [ ] Generate a graph!
- [ ] Scrape my personal stats: https://adventofcode.com/2023/leaderboard/self# Top-level operations
This is generally the order of operations each year to prepare for the next competition.
- `make init` to set up the dev env.
- `make update` to ensure all available years are scaffolded and available days' descriptions and inputs are filled in, and the generated Xcode project is up to date.
- Make sure to grab a valid session cookie from the website and put it into the environment variable for the `update` scheme, and maybe set the current year in the `year` env variable.
- **NOTE:** Do this in a private scheme, not the shared one, to avoid committing the session cookie and pushing it to the public.
- `make test` to run the tests for all years present.
- `make benchmark` to run all the benchmarks.# Files
Each year has a directory containing a directory for each day. Each day directory contains Description.swift, which has the problem text, sample and real inputs.
Part 1 and 2 implementations have their own files.
Each problem (with very few exceptions) is defined as an raw String value enums, with cases as input, and part 1 and 2 as computed vars in extensions in their files. These are all compiled into a static library target per year.
Tests are compiled into a test target per year. Benchmarks are in yet another test target.
All the implementation and test sources are colocated in each day directory, like so:
```
path/
├── aoc/
│  ├── Info.plist (for the test targets)
│  ├── Day1/
│  │  ├── Day01Description.swift
│  │  ├── Day01Part1.swift
│  │  ├── Day01Part2.swift
│  │  ├── Day01Tests.swift
│  │  └── Day01Benchmarks.swift
│  ├── Day2/
│  │  ├── Day02Description.swift
...
```# Stats
## 2022
```
--------Part 1--------- --------Part 2---------
Day Time Rank Score Time Rank Score
11 01:10:02 6750 0 02:40:17 7479 0
10 00:18:36 3593 0 01:07:40 7089 0
9 01:01:03 8471 0 - - -
8 00:29:07 5342 0 00:51:41 5302 0
7 01:04:31 6524 0 01:18:56 6678 0
6 00:22:18 12147 0 00:25:48 11609 0
5 >24h 103783 0 >24h 101842 0
4 >24h 117004 0 >24h 115070 0
3 >24h 120806 0 >24h 115098 0
2 >24h 151777 0 >24h 145485 0
1 >24h 185359 0 >24h 178595 0
```## 2021
```
--------Part 1-------- --------Part 2--------
Day Time Rank Score Time Rank Score
17 01:50:31 5833 0 02:07:09 5298 0
15 00:27:00 1695 0 - - -
14 00:59:24 8040 0 - - -
13 21:10:07 34709 0 21:21:29 33905 0
11 >24h 44267 0 - - -
10 >24h 52166 0 - - -
9 >24h 59074 0 - - -
8 00:51:01 10513 0 - - -
7 00:09:52 4373 0 01:08:34 11772 0
6 00:12:48 4327 0 04:43:58 20005 0
5 00:39:14 5335 0 01:13:28 6136 0
4 01:04:05 6342 0 01:12:35 5371 0
3 00:42:26 12148 0 01:42:56 10475 0
2 00:08:12 5780 0 00:10:03 4108 0
1 00:06:13 3537 0 00:13:50 3589 0
```## 2020
```
--------Part 1-------- --------Part 2--------
Day Time Rank Score Time Rank Score
16 >24h 31456 0 - - -
15 >24h 33987 0 >24h 32208 0
14 >24h 35093 0 >24h 31373 0
13 >24h 39860 0 - - -
12 02:20:50 8656 0 02:50:24 7568 0
11 05:00:11 14620 0 06:25:24 12774 0
10 00:24:31 6520 0 - - -
9 01:46:01 11662 0 02:09:14 11202 0
8 01:10:59 10016 0 03:52:22 15177 0
7 04:23:47 15030 0 - - -
6 >24h 52028 0 >24h 50428 0
5 >24h 64038 0 >24h 62869 0
4 >24h 60438 0 >24h 64277 0
3 >24h 73385 0 >24h 71097 0
2 >24h 84617 0 >24h 82236 0
1 >24h 75019 0 >24h 70168 0
```