summaryrefslogtreecommitdiff
path: root/day-00
diff options
context:
space:
mode:
authorLogan Hunt <loganhunt@simponic.xyz>2022-12-01 00:08:21 -0700
committerLogan Hunt <loganhunt@simponic.xyz>2022-12-01 00:08:21 -0700
commitfe0e9a576c68accc836af24c05ce6b79d556bd6a (patch)
tree59af5a2d7234d3fb5a72d1f232c7c73ec6ba390c /day-00
parent20c0e48fcc2fe9da67f9ade5cfc870aa4592642a (diff)
downloadaoc-fe0e9a576c68accc836af24c05ce6b79d556bd6a.tar.gz
aoc-fe0e9a576c68accc836af24c05ce6b79d556bd6a.zip
Fix day count
Diffstat (limited to 'day-00')
-rw-r--r--day-00/.gitkeep0
-rwxr-xr-xday-00/sol.sh40
2 files changed, 40 insertions, 0 deletions
diff --git a/day-00/.gitkeep b/day-00/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/day-00/.gitkeep
diff --git a/day-00/sol.sh b/day-00/sol.sh
new file mode 100755
index 0000000..441efb2
--- /dev/null
+++ b/day-00/sol.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# USAGE: ./sol.sh (n: top elves)
+
+NUM_ELVES=${1:-3}
+
+declare -a ELVES=()
+for (( i = 0; i<$NUM_ELVES; i++))
+do
+ ELVES+=(0)
+done
+
+
+add_to_elves () {
+ local max=$1
+ for (( i = 0; i<${NUM_ELVES}; i++));
+ do
+ local tmp="${ELVES[$i]}";
+ if [[ $max -ge $tmp ]];
+ then
+ ELVES[$i]=$max
+ max=$tmp
+ fi
+ done
+}
+
+CURRENT_ELF=0
+while read -r line
+do
+ if [[ -z "$line" ]];
+ then
+ add_to_elves $CURRENT_ELF
+ CURRENT_ELF=0
+ else
+ CURRENT_ELF=$((CURRENT_ELF+line))
+ fi
+done < input
+
+echo "MAX ELF = ${ELVES[0]}"
+echo "sum(TOP $NUM_ELVES ELVES) = $(printf "%s\n" $(echo "${ELVES[*]}") | paste -sd+ - | bc)"