summaryrefslogtreecommitdiff
path: root/day-0/sol.sh
diff options
context:
space:
mode:
authorLogan Hunt <loganhunt@simponic.xyz>2022-12-01 00:00:23 -0700
committerLogan Hunt <loganhunt@simponic.xyz>2022-12-01 00:00:23 -0700
commit20c0e48fcc2fe9da67f9ade5cfc870aa4592642a (patch)
treef9b051cac990b18b0a9292b3fdc3b7a80efae9c8 /day-0/sol.sh
downloadaoc-20c0e48fcc2fe9da67f9ade5cfc870aa4592642a.tar.gz
aoc-20c0e48fcc2fe9da67f9ade5cfc870aa4592642a.zip
Day zero - bash
Diffstat (limited to 'day-0/sol.sh')
-rwxr-xr-xday-0/sol.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/day-0/sol.sh b/day-0/sol.sh
new file mode 100755
index 0000000..441efb2
--- /dev/null
+++ b/day-0/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)"