diff options
author | Logan Hunt <loganhunt@simponic.xyz> | 2022-12-01 00:00:23 -0700 |
---|---|---|
committer | Logan Hunt <loganhunt@simponic.xyz> | 2022-12-01 00:00:23 -0700 |
commit | 20c0e48fcc2fe9da67f9ade5cfc870aa4592642a (patch) | |
tree | f9b051cac990b18b0a9292b3fdc3b7a80efae9c8 /day-0/sol.sh | |
download | aoc-20c0e48fcc2fe9da67f9ade5cfc870aa4592642a.tar.gz aoc-20c0e48fcc2fe9da67f9ade5cfc870aa4592642a.zip |
Day zero - bash
Diffstat (limited to 'day-0/sol.sh')
-rwxr-xr-x | day-0/sol.sh | 40 |
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)" |