# `aoc-utils`

A comprehensive JavaScript utility library designed to help solve [Advent of Code](https://adventofcode.com/) challenges. This library provides a rich set of tools and specialised data structures optimised for common Advent of Code puzzle patterns.

## Getting started

1. Install as a dependency by performing:

```SHELL
npm install -D @assadk88/aoc-utils
```

2. Import and use the utilities in your solutions as required. For example to retrieve the input for a given problem:

```JAVASCRIPT
// This will return the input for the first problem of 2024
> const input = AOC.getInput(2024, 1)
// You can then parse this input so that it is usable in your solutions
> AOC.parseInput(input)
```

## Documentation

- [Algorithms](/src/algorithms/)
- [Data Structures](/src/dataStructures/)
- [Prototype Extensions](/src/prototypeExtensions/)
- [Aliases](/src/prototypeExtensions/aliases)

See the [documentation](/docs/README.md) for more information.

## Links

- Libraries
  - [`nim-ka`/`aocutil`](https://github.com/nim-ka/aocutil)
  - [Jo Wood/ AOC Utilities](https://archive.ph/TlSxS)
  - [`lodash`](https://lodash.com/)
    - [ES Module Source](https://github.com/lodash/lodash/tree/4.17.21-es)
    - [`lodash-modularized`](https://www.npmjs.com/search?q=keywords:lodash-modularized)
    - [`lodash`/ FP Guide](https://github.com/lodash/lodash/wiki/fp-guide)
  - [`ramda`](https://ramdajs.com/)
  - [`underscore`](https://underscorejs.org/)
  - [`remeda`](https://github.com/remeda/remeda)
  - [`fkit`](https://github.com/nullobject/fkit)
  - [`fp-ts`](https://github.com/gcanti/fp-ts)
  - [`trekhleb`/`javascript-algorithms`](https://github.com/trekhleb/javascript-algorithms)
- Communities
  - [/r/AdventOfCode](https://old.reddit.com/r/adventofcode/)
    - [/r/AdventOfCode/ 450 Stars: A Categorization and Mega-Guide](https://old.reddit.com/r/adventofcode/comments/1gdw4cj/450_stars_a_categorization_and_megaguide/)
  - [/r/CodeGolf](https://old.reddit.com/r/codegolf/)
  - [/r/tinycode](https://old.reddit.com/r/tinycode/)
  - [Code Golf Stack Exchange](https://codegolf.stackexchange.com/)
- Misc.
  - [/r/AdventOfCode/ 450 Stars: A Categorization and Mega-Guide](https://old.reddit.com/r/adventofcode/comments/1gdw4cj/450_stars_a_categorization_and_megaguide/)
  - [`mkazemiraz`/`one-line-javascript-utility-codes`](https://github.com/mkazemiraz/one-line-javascript-utility-codes)
  - [`Bogdanp`/`awesome-advent-of-code`](https://github.com/Bogdanp/awesome-advent-of-code)
