summaryrefslogtreecommitdiff
path: root/aoc_2022/day-00/sol.sh
diff options
context:
space:
mode:
Diffstat (limited to 'aoc_2022/day-00/sol.sh')
-rwxr-xr-xaoc_2022/day-00/sol.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/aoc_2022/day-00/sol.sh b/aoc_2022/day-00/sol.sh
new file mode 100755
index 0000000..441efb2
--- /dev/null
+++ b/aoc_2022/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)"