From a88e8da779cd09c398723e4e87e79d945af0994e Mon Sep 17 00:00:00 2001 From: brian Date: Sat, 3 Aug 2024 13:33:43 -0700 Subject: initial commit to day 6 --- day6.scm | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 day6.scm (limited to 'day6.scm') diff --git a/day6.scm b/day6.scm new file mode 100755 index 0000000..419d687 --- /dev/null +++ b/day6.scm @@ -0,0 +1,24 @@ +#!/usr/bin/env gosh +(use file.util) + +(define (read-input filename) + (let ((tree (make-hash-table string-comparator))) + (for-each + (lambda (x) (hash-table-push! tree (car x) (cadr x))) + (map + (cut string-split <> ")") + (file->string-list filename))) + tree)) + +(define (count-branch-length mapping key length) + (if (hash-table-contains? mapping key) + (fold + 0 (map (cut count-branch-length mapping <> (+ length 1)) + (hash-table-ref mapping key))) + (fold + 0 (iota length 1)))) + +(define (part1 input) + (count-branch-length input "COM" 0)) + +(define (main args) + (let ((input (read-input "inputs/day6test.txt"))) + (print (part1 input)))) \ No newline at end of file -- cgit 1.4.1-2-gfad0