diff options
Diffstat (limited to '2024/01-Historian_Hysteria/01.factor')
-rw-r--r-- | 2024/01-Historian_Hysteria/01.factor | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/2024/01-Historian_Hysteria/01.factor b/2024/01-Historian_Hysteria/01.factor new file mode 100644 index 0000000..a34721e --- /dev/null +++ b/2024/01-Historian_Hysteria/01.factor @@ -0,0 +1,33 @@ +! Copyright (C) 2024 Julien (adyxax) Dessaux. +! See https://git.adyxax.org/adyxax/advent-of-code/tree/LICENSE for EUPL license. +USING: assocs io io.encodings.utf8 io.files kernel math math.parser +math.statistics namespaces prettyprint sequences sorting splitting ; +IN: aoc.2024.01 + +<PRIVATE + +: load_input ( filename -- array array ) + "~/git/adyxax/aoc/2024/01-Historian_Hysteria/" + swap append utf8 file-lines + [ split-words harvest ] map unzip + [ [ string>number ] map ] bi@ ; + +: part1 ( filename -- n ) + load_input + [ sort ] bi@ + [ - abs ] 2map + sum ; + +: part2 ( filename -- n ) + load_input + histogram ! turns an array into a hashtable of { value occurrences } + '[ dup _ at 0 or * ] map + sum ; + +PRIVATE> + +: aoc202401 ( -- ) + "input" part1 pprint nl + "input" part2 pprint nl ; + +MAIN: aoc202401 |