diff --git a/2024/day-12/solution-1.sh b/2024/day-12/solution-1.sh index a01faa1..f1c3a97 100644 --- a/2024/day-12/solution-1.sh +++ b/2024/day-12/solution-1.sh @@ -5,6 +5,7 @@ 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 )) +MAP_WIDTH_INV=$(( 0 - MAP_WIDTH )) MAP_HEIGHT=$( < "$FILE" wc -l ) printf "Len: %s Width: %s Height: %s\n" "$MAP_LEN" "$MAP_WIDTH" "$MAP_HEIGHT" @@ -19,14 +20,12 @@ check_adjacent () { DIFF=$(( $2 - $1 )) # Valid adjacent distances - case "$DIFF" in - 1|-1|"${MAP_WIDTH}"|-"${MAP_WIDTH}") - : - ;; - *) - return 1 - ;; - esac + if [[ $DIFF -eq 1 ]] || [[ $DIFF -eq -1 ]] || [[ $DIFF -eq $MAP_WIDTH ]] || [[ $DIFF -eq $MAP_WIDTH_INV ]] + then + : + else + return 1 + fi # Check for left/right bounds if [[ $DIFF -eq 1 ]] && [[ $(( $2 % MAP_WIDTH )) -eq 0 ]]