From 9a9742bf2648f6c0de3286f794472fb2866ef20a Mon Sep 17 00:00:00 2001 From: Bruno Raoult Date: Sun, 1 Aug 2021 12:38:37 +0200 Subject: [PATCH] day 22/part 1: cleanup bash code, remove a loop --- 2020/day22/ex1.bash | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/2020/day22/ex1.bash b/2020/day22/ex1.bash index 7508655..f49ab39 100755 --- a/2020/day22/ex1.bash +++ b/2020/day22/ex1.bash @@ -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