Files
advent-of-code/day14/ex1.bash
2020-12-23 21:05:42 +01:00

32 lines
527 B
Bash
Executable File

#!/bin/bash
#
# ex1.bash: Advent2020 game, day 14/game 1.
CMD=${0##*/}
shopt -s extglob
declare -A mem
declare -i pos
declare ORMASK ANDMASK
declare mask=""
while read -r line; do
line=${line// /}
eval "$line"
if [[ $line =~ ^mask ]]; then
ORMASK=2\#${mask//X/0}
ANDMASK=2\#${mask//X/1}
else
[[ $line =~ ^.*\[([0-9]+)\].* ]]
pos=${BASH_REMATCH[1]}
((mem[$pos] &= ANDMASK))
((mem[$pos] |= ORMASK))
fi
done
SUM=0
for i in "${!mem[@]}"; do
((SUM+=${mem[$i]}))
done
printf "%s : res=%d\n" "$CMD" "$SUM"
exit 0