diff options
author | HJ <thechairman@thechairman.info> | 2023-12-17 00:03:17 -0500 |
---|---|---|
committer | HJ <thechairman@thechairman.info> | 2023-12-17 00:03:17 -0500 |
commit | 774dede7c2f4a02ed9a588cff08a79e1f8cf3217 (patch) | |
tree | d3826b0281332c05f86c9d0ce0f268d5fbb3c860 | |
parent | 66ef0cabda52a27ebd52411f6d1fa1b8ac0ec9da (diff) | |
download | gleam_aoc-774dede7c2f4a02ed9a588cff08a79e1f8cf3217.tar.gz gleam_aoc-774dede7c2f4a02ed9a588cff08a79e1f8cf3217.zip |
day 17 start
-rw-r--r-- | aoc2023-other/day-16/day-16.rkt | 2 | ||||
-rw-r--r-- | aoc2023/src/day17/.gitignore | 1 | ||||
-rw-r--r-- | aoc2023/src/day17/solve.gleam | 25 | ||||
-rw-r--r-- | aoc2023/test/day17/day17_test.gleam | 38 |
4 files changed, 65 insertions, 1 deletions
diff --git a/aoc2023-other/day-16/day-16.rkt b/aoc2023-other/day-16/day-16.rkt index 4a70de8..a21c8a2 100644 --- a/aoc2023-other/day-16/day-16.rkt +++ b/aoc2023-other/day-16/day-16.rkt @@ -67,4 +67,4 @@ (map (λ (c) (light (posn -1 c) 'down)) (range cols)) (map (λ (c) (light (posn rows c) 'up)) (range cols)))) -(get-energized (argmax get-energized all-starting-positions))
\ No newline at end of file +(time(get-energized (argmax get-energized all-starting-positions)))
\ No newline at end of file diff --git a/aoc2023/src/day17/.gitignore b/aoc2023/src/day17/.gitignore new file mode 100644 index 0000000..ae40cea --- /dev/null +++ b/aoc2023/src/day17/.gitignore @@ -0,0 +1 @@ +input.txt
\ No newline at end of file diff --git a/aoc2023/src/day17/solve.gleam b/aoc2023/src/day17/solve.gleam new file mode 100644 index 0000000..5289ce9 --- /dev/null +++ b/aoc2023/src/day17/solve.gleam @@ -0,0 +1,25 @@ +import adglent.{First, Second} +import gleam/io + +pub fn part1(input: String) { + todo as "Implement solution to part 1" +} + +pub fn part2(input: String) { + todo as "Implement solution to part 2" +} + +pub fn main() { + let assert Ok(part) = adglent.get_part() + let assert Ok(input) = adglent.get_input("17") + case part { + First -> + part1(input) + |> adglent.inspect + |> io.println + Second -> + part2(input) + |> adglent.inspect + |> io.println + } +} diff --git a/aoc2023/test/day17/day17_test.gleam b/aoc2023/test/day17/day17_test.gleam new file mode 100644 index 0000000..cf624fb --- /dev/null +++ b/aoc2023/test/day17/day17_test.gleam @@ -0,0 +1,38 @@ +import gleam/list +import showtime/tests/should +import adglent.{type Example, Example} +import day17/solve + +type Problem1AnswerType = + String + +type Problem2AnswerType = + String + +/// Add examples for part 1 here: +/// ```gleam +///const part1_examples: List(Example(Problem1AnswerType)) = [Example("some input", "")] +/// ``` +const part1_examples: List(Example(Problem1AnswerType)) = [] + +/// Add examples for part 2 here: +/// ```gleam +///const part2_examples: List(Example(Problem2AnswerType)) = [Example("some input", "")] +/// ``` +const part2_examples: List(Example(Problem2AnswerType)) = [] + +pub fn part1_test() { + part1_examples + |> should.not_equal([]) + use example <- list.map(part1_examples) + solve.part1(example.input) + |> should.equal(example.answer) +} + +pub fn part2_test() { + part2_examples + |> should.not_equal([]) + use example <- list.map(part2_examples) + solve.part2(example.input) + |> should.equal(example.answer) +} |