Day 01
This commit is contained in:
commit
d5e9ce2d39
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
result
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2022 h7x4
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
13
README.md
Normal file
13
README.md
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
# Advent of code 2022 - Nix
|
||||||
|
|
||||||
|
This is [Advent of Code 2022][aoc2022] (or at least as far as I'm able to get before having to deal with my exams...)
|
||||||
|
|
||||||
|
They're written in nix this year.
|
||||||
|
|
||||||
|
To run the code:
|
||||||
|
|
||||||
|
```
|
||||||
|
nix build github:h7x4/aoc2022#day01
|
||||||
|
```
|
||||||
|
|
||||||
|
[aoc2022]: https://adventofcode.com/2022
|
32
day01/default.nix
Normal file
32
day01/default.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
elves = pipe (builtins.readFile ./input.txt) [
|
||||||
|
(splitString "\n\n")
|
||||||
|
(map (splitString "\n"))
|
||||||
|
(map (map toInt))
|
||||||
|
(map (fold add 0))
|
||||||
|
];
|
||||||
|
|
||||||
|
answer1 = toString (fold max (-1) elves);
|
||||||
|
|
||||||
|
max3 = abc: x: if x >= abc.a then { a = x; b = abc.a; c = abc.b; } else
|
||||||
|
if x >= abc.b then { a = abc.a; b = x; c = abc.b; } else
|
||||||
|
if x >= abc.c then { inherit (abc) a b; c = x; } else
|
||||||
|
abc;
|
||||||
|
|
||||||
|
answer2 = pipe elves [
|
||||||
|
(foldl max3 { a = -1; b = -1; c = -1; })
|
||||||
|
(abc: abc.a + abc.b + abc.c)
|
||||||
|
toString
|
||||||
|
];
|
||||||
|
|
||||||
|
in pkgs.writeText "answers" ''
|
||||||
|
Task1:
|
||||||
|
${answer1}
|
||||||
|
|
||||||
|
Task2:
|
||||||
|
${answer2}
|
||||||
|
''
|
2265
day01/input.txt
Normal file
2265
day01/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
26
flake.lock
generated
Normal file
26
flake.lock
generated
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1669834992,
|
||||||
|
"narHash": "sha256-YnhZGHgb4C3Q7DSGisO/stc50jFb9F/MzHeKS4giotg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "596a8e828c5dfa504f91918d0fa4152db3ab5502",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"id": "nixpkgs",
|
||||||
|
"ref": "nixos-22.11",
|
||||||
|
"type": "indirect"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user