https://github.com/nlowe/aoc2021
Advent of Code 2021 Solutions
https://github.com/nlowe/aoc2021
Last synced: 5 months ago
JSON representation
Advent of Code 2021 Solutions
- Host: GitHub
- URL: https://github.com/nlowe/aoc2021
- Owner: nlowe
- License: mit
- Created: 2021-11-07T06:21:22.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-12-04T06:34:40.000Z (over 3 years ago)
- Last Synced: 2024-06-20T13:40:47.138Z (almost 2 years ago)
- Language: Go
- Size: 199 KB
- Stars: 9
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Advent of Code 2021
[](https://github.com/nlowe/aoc2021/actions) [](https://coveralls.io/github/nlowe/aoc2021?branch=master) [](https://goreportcard.com/report/github.com/nlowe/aoc2021) [](./LICENSE)
Solutions for the 2021 Advent of Code
## Building
This project makes use of Go 1.17.
```bash
go mod download
go test ./...
```
## Running the Solutions
To run a solution, use the problem name followed by the path to an input file.
For example, to run problem 2a:
```bash
$ go run main.go 1 a
Answer: 1532
Took 1.5586ms
```
## Adding New Solutions
A generator program is included that makes templates for each day, automatically
downloading challenge input and updating the root command to add new subcommands
for each problem. Running `go generate` from the repo root will generate the
following for each day that is currently accessible:
* `challenge/day/import.go`: A "glue" file combining commands for both of the day's problems to simplify wiring up subcommands
* `challenge/day/a.go`: The main problem implementation, containing a cobra command `A` and the implementation `func a(*challenge.Input) int`
* `challenge/day/a_test.go`: A basic test template
* `challenge/day/b.go`: The main problem implementation, containing a cobra command `B` and the implementation `func b(*challenge.Input) int`
* `challenge/day/b_test.go`: A basic test template
* `challenge/day/input.txt`: The challenge input
Additionally, `challenge/cmd/cmd.go` will be regenerated to import and add all
subcommands.
This requires `goimports` be available on your `$PATH`. Additionally, you must be
logged into https://adventofcode.com in Chrome so the generator can use your session
cookie to download challenge input.
Existing solutions and challenge inputs will be skipped instead of regenerated.
## License
These solutions are licensed under the MIT License.
See [LICENSE](./LICENSE) for details.