From 9a0a6300399716b00052715ee4b1d04ef3119df0 Mon Sep 17 00:00:00 2001 From: Patrick Michl Date: Wed, 11 Dec 2024 11:31:35 +0100 Subject: [PATCH] day11 --- day11.sh | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/day11.sh b/day11.sh index e74b4af..40b454c 100644 --- a/day11.sh +++ b/day11.sh @@ -6,11 +6,12 @@ source ./utils/array.sh count_after_blinks() { local blinks="$1" - local -A stones=() new_stones=() + local -A stones=() for stone in "${@:2}"; do stones["$stone"]=1; done for ((n = 0; n < blinks; n++)); do + local -A new_stones=() for stone in "${!stones[@]}"; do if ((stone == 0)); then new_stones[1]="$((${new_stones[1]:-0} + stones["$stone"]))" @@ -24,14 +25,11 @@ count_after_blinks() { else new_stones["$((stone * 2024))"]="$((${new_stones["$((stone * 2024))"]:-0} + stones["$stone"]))" fi - stones["$stone"]=0 done - local old new - old="$(declare -p stones)" - new="$(declare -p new_stones)" - eval "${old/stones/new_stones}" - eval "${new/new_stones/stones}" + local tmp + tmp="$(declare -p new_stones)" + eval "${tmp/new_stones/stones}" done array.sum stones