Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/itsluketwist/advent-of-code-2023

Learning Go with Advent of Code 2023.
https://github.com/itsluketwist/advent-of-code-2023

advent-of-code advent-of-code-2023 advent-of-code-go advent-of-code-golang go golang

Last synced: 25 days ago
JSON representation

Learning Go with Advent of Code 2023.

Awesome Lists containing this project

README

        

# advent-of-code-2023

My solutions to Advent of Code 2023, attempting to learn Go (from a minimal base).
Using Go version `go1.21.4`.

![check code workflow](https://github.com/itsluketwist/advent-of-code-2023/actions/workflows/check.yaml/badge.svg)





Advent of Code


Go

## *notable days*
- [Day 8](day08/main.go) - GCD / LCM solution
- [Day 10](day10/main.go) / [Day 18](day18/main.go) - uses Shoelace formula and Pick's theorem
- [Day 12](day12/main.go) - dynamic programming example
- [Day 12](day12/main.go) - uses Djikstra's algorithm and a bucket heap implementation
- [Day 20](day20/main.go) - FIFO queue
- [Day 23](day23/main.go) - graph building + traversal

## *install*

Make sure you have go installed:

```shell
go version
```

Otherwise... [go get it](https://go.dev/doc/install)!

## *usage*

To run the code for day `x`, run:

```shell
make run d=x
```

You can also specify a day part, or whether to try the final input:

```shell
make run d=x p=1 t=1
```

To test the code for day `x`, run:

```shell
make test day=x
```

Format and lint the code with:

```shell
make clean
```

You can also create the template folder and code for day `x` using:

```shell
make new d=x
```