Day 22 part 1 (bash)

This commit is contained in:
2021-07-31 13:13:30 +02:00
parent 5b0a1d7b53
commit 1a09c380a2
3 changed files with 319 additions and 1 deletions

42
2020/day22/ex1.bash Executable file
View File

@@ -0,0 +1,42 @@
#!/bin/bash
#
# ex1.bash: Advent2020 game, day 22/game 1.
CMD=${0##*/}
shopt -s extglob
set -o noglob
declare -a cards=() CARDS1=() CARDS2=()
declare -i count=-1
while read -r line; do
case ${line:0:1} in
P*)
((count++))
;;
[1-9]*)
cards[$count]+=" $line"
;;
esac
done
# shellcheck disable=SC2206
CARDS1=(${cards[0]});
# shellcheck disable=SC2206
CARDS2=(${cards[1]})
while ((${#CARDS1[@]} > 0 && ${#CARDS2[@]})); do
# shellcheck disable=SC2128
((CARDS1 > CARDS2)) && CARDS1+=("$CARDS1" "$CARDS2") || CARDS2+=("$CARDS2" "$CARDS1")
CARDS1=("${CARDS1[@]:1}")
CARDS2=("${CARDS2[@]:1}")
done
cards=()
for i in "${CARDS1[@]}" "${CARDS2[@]}"; do
cards=("$i" "${cards[@]}")
done
n=1
res=0
for i in "${cards[@]}"; do
((res+=n*i, n++))
done
printf "%s: res=%d\n" "$CMD" "$res"
exit 0