mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-25 21:00:31 +01:00
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.
26 lines
367 B
Bash
Executable File
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
|