summaryrefslogtreecommitdiff
path: root/day-0/sol.sh
blob: 441efb2ed26c971c9b61e20a81e922364e382775 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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)"