day 22/part 1: cleanup bash code, remove a loop

This commit is contained in:
2021-08-01 12:38:37 +02:00
parent 92f7ea1b2c
commit 9a9742bf26

View File

@@ -19,24 +19,21 @@ while read -r line; do
;; ;;
esac esac
done done
# shellcheck disable=SC2206 # shellcheck disable=SC2206
CARDS1=(${cards[0]}); CARDS1=(${cards[0]}) && CARDS2=(${cards[1]})
# shellcheck disable=SC2206
CARDS2=(${cards[1]}) while ((${#CARDS1[@]} && ${#CARDS2[@]})); do
while ((${#CARDS1[@]} > 0 && ${#CARDS2[@]})); do
# shellcheck disable=SC2128 # shellcheck disable=SC2128
((CARDS1 > CARDS2)) && CARDS1+=("$CARDS1" "$CARDS2") || CARDS2+=("$CARDS2" "$CARDS1") ((CARDS1 > CARDS2)) && CARDS1+=("$CARDS1" "$CARDS2") || CARDS2+=("$CARDS2" "$CARDS1")
CARDS1=("${CARDS1[@]:1}") CARDS1=("${CARDS1[@]:1}")
CARDS2=("${CARDS2[@]:1}") CARDS2=("${CARDS2[@]:1}")
done done
cards=()
declare -i n=$((${#CARDS1[@]}+${#CARDS2[@]})) res=0 i
for i in "${CARDS1[@]}" "${CARDS2[@]}"; do for i in "${CARDS1[@]}" "${CARDS2[@]}"; do
cards=("$i" "${cards[@]}") ((res+=n*i, n--))
done
n=1
res=0
for i in "${cards[@]}"; do
((res+=n*i, n++))
done done
printf "%s: res=%d\n" "$CMD" "$res" printf "%s: res=%d\n" "$CMD" "$res"
exit 0 exit 0