diff options
author | J.J <thechairman@thechairman.info> | 2023-11-30 17:10:00 -0500 |
---|---|---|
committer | J.J <thechairman@thechairman.info> | 2023-11-30 17:10:00 -0500 |
commit | 8ab65dc2da1742eb86ec636c50c7018385b68167 (patch) | |
tree | c4fd556aca9b867cfa1f2f174128c30857353884 /aoc2021/day-01/day-01.pl | |
parent | fafbeaf9e3c09ba7a5bea7e47d5736001f8a5aa1 (diff) | |
download | gleam_aoc-8ab65dc2da1742eb86ec636c50c7018385b68167.tar.gz gleam_aoc-8ab65dc2da1742eb86ec636c50c7018385b68167.zip |
prep for 2023, renaming for consistency
Diffstat (limited to 'aoc2021/day-01/day-01.pl')
-rw-r--r-- | aoc2021/day-01/day-01.pl | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/aoc2021/day-01/day-01.pl b/aoc2021/day-01/day-01.pl new file mode 100644 index 0000000..d3c3fa7 --- /dev/null +++ b/aoc2021/day-01/day-01.pl @@ -0,0 +1,20 @@ +:- use_module(library(yall)). +:- use_module(library(apply)). + +get_data(Result) :- + setup_call_cleanup(open("day-01/input.txt", read, In), + (read_string(In, _, Str), + split_string(Str, "\n", "\s\t\n", Lines), + maplist(number_string, Result, Lines)), + close(In)). + +calculate_diffs(Result, WindowWidth) :- + get_data(Xs), + length(TrimLeft, WindowWidth), append(TrimLeft, RightSide, Xs), + length(TrimRight, WindowWidth), append(LeftSide, TrimRight, Xs), + maplist([X, Y, Z]>>(Z is Y - X), LeftSide, RightSide, Diffs), + include([X]>>(X > 0), Diffs, Increases), + length(Increases, Result). + +part1_answer(Result) :- calculate_diffs(Result, 1). +part2_answer(Result) :- calculate_diffs(Result, 3).
\ No newline at end of file |