diff options
Diffstat (limited to 'day6.scm')
-rwxr-xr-x | day6.scm | 24 |
1 files changed, 24 insertions, 0 deletions
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 |