day 22/part 1: cleanup bash code, remove a loop
This commit is contained in:
@@ -19,24 +19,21 @@ while read -r line; do
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# shellcheck disable=SC2206
|
||||
CARDS1=(${cards[0]});
|
||||
# shellcheck disable=SC2206
|
||||
CARDS2=(${cards[1]})
|
||||
while ((${#CARDS1[@]} > 0 && ${#CARDS2[@]})); do
|
||||
CARDS1=(${cards[0]}) && CARDS2=(${cards[1]})
|
||||
|
||||
while ((${#CARDS1[@]} && ${#CARDS2[@]})); do
|
||||
# shellcheck disable=SC2128
|
||||
((CARDS1 > CARDS2)) && CARDS1+=("$CARDS1" "$CARDS2") || CARDS2+=("$CARDS2" "$CARDS1")
|
||||
CARDS1=("${CARDS1[@]:1}")
|
||||
CARDS2=("${CARDS2[@]:1}")
|
||||
done
|
||||
cards=()
|
||||
|
||||
declare -i n=$((${#CARDS1[@]}+${#CARDS2[@]})) res=0 i
|
||||
|
||||
for i in "${CARDS1[@]}" "${CARDS2[@]}"; do
|
||||
cards=("$i" "${cards[@]}")
|
||||
done
|
||||
n=1
|
||||
res=0
|
||||
for i in "${cards[@]}"; do
|
||||
((res+=n*i, n++))
|
||||
((res+=n*i, n--))
|
||||
done
|
||||
printf "%s: res=%d\n" "$CMD" "$res"
|
||||
exit 0
|
||||
|
Reference in New Issue
Block a user