My solutions to the advent of code
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

43 lines
745 B

#!/usr/bin/env bash
file="$1"
ones=(0 0 0 0 0 0 0 0 0 0 0 0)
lines=0
gamma=""
epsilon=""
while read line; do
bitn=0
while read bit; do
if [ "$bit" -eq 1 ]; then
ones[$bitn]=$((${ones[$bitn]} + 1))
fi
bitn=$(( bitn + 1 ))
done < <(echo "$line" | grep -o .)
lines="$((lines + 1))"
done < <(cat "$file")
echo "${ones[@]}"
for i in ${ones[@]}; do
if [ "$i" -gt "$(( lines / 2 ))" ]; then
gamma="${gamma}1"
epsilon="${epsilon}0"
else
gamma="${gamma}0"
epsilon="${epsilon}1"
fi
done
gammaDecimal="$( echo "ibase=2; $gamma" | bc )"
epsilonDecimal="$( echo "ibase=2; $epsilon" | bc )"
echo "Gamma: $gamma -> $gammaDecimal"
echo "Epsilon: $epsilon -> $epsilonDecimal"
echo "Answer: $((gammaDecimal * epsilonDecimal))"