diff --git a/2024/day-11/solution-2-2.sh b/2024/day-11/solution-2-2.sh index 75828c3..0ead0d3 100644 --- a/2024/day-11/solution-2-2.sh +++ b/2024/day-11/solution-2-2.sh @@ -81,7 +81,7 @@ get_num () { # Start the loop tr " " "\n" < "$FILE" | sort -n | uniq -c > temp-input -for (( i=0; i<75; i++ )) +for (( i=0; i<750; i++ )) do printf "%s Position %s\n" "$( date )" "$i" #cat temp-input diff --git a/2024/day-12/solution-1.sh b/2024/day-12/solution-1.sh index 2e93748..a01faa1 100644 --- a/2024/day-12/solution-1.sh +++ b/2024/day-12/solution-1.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash -FILE=test-input-1 +FUNCNEST=99999 +FILE=test-input-2 read -r -a MAP_ARRAY <<< "$( < "$FILE" paste -s -d "" | sed -E 's/(.)/\1\ /g' )" MAP_LEN=${#MAP_ARRAY[@]} MAP_WIDTH=$(( $( head -1 "$FILE" | wc -c ) -1 )) @@ -45,22 +46,23 @@ check_and_unset () { IDX=$1 local KV_I=${IDX%% *} # Remove trailing whitespace - if [[ -v KV_CACHE[$KV_I] ]] # Check if tile has been "taken" - then - (( AREA++ )) - VALUE=${KV_CACHE[$IDX]} - printf "max: %s peri: %s area: %s key: %s val: %s\n" "$MAX_PERI" "$PERI_NUM" "$AREA" "$1" "$VALUE" >&2 + (( AREA++ )) + VALUE=${KV_CACHE[$KV_I]} + unset "KV_CACHE[$KV_I]" # "Take" it + printf "max: %s peri: %s area: %s key: %s val: %s\n" "$MAX_PERI" "$PERI_NUM" "$AREA" "$1" "$VALUE" >&2 - (( PERI_NUM+=MAX_PERI )) - unset IFS; read -r -a VAL_ARRAY <<< "$VALUE" - for VAL in "${VAL_ARRAY[@]}" - do - (( PERI_NUM-- )) - check_and_unset "$VAL" - done + (( PERI_NUM+=MAX_PERI )) + unset IFS; read -r -a VAL_ARRAY <<< "$VALUE" + for VAL in "${VAL_ARRAY[@]}" + do + (( PERI_NUM-- )) + VAL_IDX=${VAL%% *} + if [[ -v KV_CACHE[$VAL_IDX] ]] # Check if tile has been "taken" + then + check_and_unset "$VAL_IDX" + fi + done - unset "KV_CACHE[$KV_I]" # "Take" it - fi } while read -r CHAR @@ -86,6 +88,7 @@ do IFS=':'; while read -r VAR1 VAR2 do + printf "VAR1: %s VAR2: %s\n" "$VAR1" "$VAR2" >&2 KV_CACHE[$VAR1]=$VAR2 done <<< "$( @@ -94,7 +97,9 @@ do do NUM_ADJ=0 printf "%s:" "${CHAR_ARRAY[i]}" - for (( j=i+1; j&2 + printf "char: %s max: %s peri: %s area: %s\n" "$CHAR" "$MAX_PERI" "$PERI_NUM" "$AREA" >&2 printf "%s\n" "$(( PERI_NUM * AREA ))" done # Get all plants