add bash solution for day2

This commit is contained in:
Patrick Michl 2022-12-02 19:55:41 +01:00
parent 6b3fcfd9cd
commit ca600eb280
No known key found for this signature in database
GPG Key ID: BFE0ACEE21CD5EB0

54
src/day_2.sh Normal file
View File

@ -0,0 +1,54 @@
#!/usr/bin/env bash
unset PATH
BASE='.*';until [[ "$(eval "echo $BASE")" =~ \.git ]]; do BASE="../$BASE"; done;BASE="${BASE/'*'}"
source "$BASE/utils.sh"
INPUT="$(<"$BASE/data/day_2.txt")"
declare -A COMBINATION_TO_POINTS=(
['A X']=3
['A Y']=6
['A Z']=0
['B X']=0
['B Y']=3
['B Z']=6
['C X']=6
['C Y']=0
['C Z']=3
)
declare -A SHOULD_PLAY=(
['A X']=Z
['A Y']=X
['A Z']=Y
['B X']=X
['B Y']=Y
['B Z']=Z
['C X']=Y
['C Y']=Z
['C Z']=X
)
declare -A SCORES=([X]=1 [Y]=2 [Z]=3)
p1() {
mapfile -t scores <<< "$(
while read -r i; do
echo $(( COMBINATION_TO_POINTS[$i] + SCORES[${i:2}] ))
done <<< "$1"
)"
utils.sum "${scores[@]}"
}
p2() {
mapfile -t scores <<< "$(
while read -r i; do
i="${i::1} ${SHOULD_PLAY["$i"]}"
echo $(( COMBINATION_TO_POINTS[$i] + SCORES[${i:2}] ))
done <<< "$1"
)"
utils.sum "${scores[@]}"
}
p1 "$INPUT"
p2 "$INPUT"