Files
adventofcode/2017/day-02/solution.sh
Bert Peters b368355201 Optimize bash solution for day 2.
Now loops less (only n(n-1) / 2 times instead of n^2), doesn't call echo
spuriously, and doesn't use tail/head anymore. Results in 75% less
runtime, so I'll take it.
2017-12-11 00:13:51 +01:00

26 lines
367 B
Bash
Executable File

#!/bin/bash
sum1=0
sum2=0
while read -r line; do
sorted=$(tr '\t' '\n' <<< "$line" | sort -n)
((sum1 += ${sorted##*$'\n'} - ${sorted%%$'\n'*}))
for a in $sorted; do
for b in $sorted; do
if [[ $a -le $b ]]; then
break
fi
if [[ $((a % b)) -eq 0 ]]; then
((sum2 += a / b))
break
fi
done
done
done
echo Sum 1: $sum1
echo Sum 2: $sum2