From 8777ff071f7bb37631baa7b6717ad29961e50911 Mon Sep 17 00:00:00 2001 From: "H.J" Date: Wed, 9 Oct 2024 11:36:55 -0400 Subject: sorting by language --- racket/aoc2021/day-01/day-01.pl | 20 ++++++++++++++++++++ racket/aoc2021/day-01/day-01.rkt | 20 ++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 racket/aoc2021/day-01/day-01.pl create mode 100644 racket/aoc2021/day-01/day-01.rkt (limited to 'racket/aoc2021/day-01') diff --git a/racket/aoc2021/day-01/day-01.pl b/racket/aoc2021/day-01/day-01.pl new file mode 100644 index 0000000..d3c3fa7 --- /dev/null +++ b/racket/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 diff --git a/racket/aoc2021/day-01/day-01.rkt b/racket/aoc2021/day-01/day-01.rkt new file mode 100644 index 0000000..48ef158 --- /dev/null +++ b/racket/aoc2021/day-01/day-01.rkt @@ -0,0 +1,20 @@ +#lang racket +(require advent-of-code + threading) + +;; part 1 +(define sensor-data + (~> (open-aoc-input (find-session) 2021 1 #:cache (string->path "./cache")) + (port->list read _))) + +(define (count-increases data offset) + (for/sum ([x (in-list data)] + [y (in-list (drop data offset))] + #:when (< x y)) + 1)) + +(~a "Part 1: " (count-increases sensor-data 1)) + +;; part 2 + +(~a "Part 2: " (count-increases sensor-data 3)) \ No newline at end of file -- cgit v1.2.3