Working part 1
This commit is contained in:
@ -73,36 +73,40 @@ get_nine () {
|
||||
COMBINATIONS+=( "$INDEX" )
|
||||
fi
|
||||
fi
|
||||
printf "Get: %s \n" "$GET_NUM" >&2
|
||||
printf "trail: %s \n" "$TRAIL" >&2
|
||||
printf "neighbors found : %s \n" "${COMBINATIONS[@]}" >&2
|
||||
#PRINT1=$( printf "%s " "$TRAIL" )
|
||||
#PRINT2=$( printf "%s " "${COMBINATIONS[@]}" )
|
||||
#printf "trail: %s, Get: %s, combinations: %s \n" "$PRINT1" "$GET_NUM" "$PRINT2" >&2
|
||||
|
||||
# Check if the end has been reached
|
||||
# or no matching neighbors
|
||||
if [[ $GET_NUM -eq 9 ]] || [[ ${#COMBINATIONS[@]} -eq 0 ]]
|
||||
then
|
||||
# Exit recursion
|
||||
printf "%s" "${#COMBINATIONS[@]}"
|
||||
printf "%s " "${COMBINATIONS[@]}"
|
||||
#printf "%s " "${COMBINATIONS[@]}" >&2
|
||||
return
|
||||
fi
|
||||
|
||||
# Recurse
|
||||
TOTAL=0
|
||||
NEXT_NUM=$(( GET_NUM+=1 ))
|
||||
for INDEX in "${COMBINATIONS[@]}"
|
||||
do
|
||||
COUNT=$(
|
||||
get_nine \
|
||||
"$NEXT_NUM" \
|
||||
"$( get_valid_neighbors "$INDEX" )" \
|
||||
"$INDEX"
|
||||
)
|
||||
(( TOTAL+=COUNT ))
|
||||
done
|
||||
printf "%s" "$TOTAL"
|
||||
read -r -a RESULTS <<< "$(
|
||||
for INDEX in "${COMBINATIONS[@]}"
|
||||
do
|
||||
RESULT=$(
|
||||
get_nine \
|
||||
"$NEXT_NUM" \
|
||||
"$( get_valid_directions "$INDEX" )" \
|
||||
"$INDEX"
|
||||
)
|
||||
printf "%s " "$RESULT"
|
||||
done
|
||||
)"
|
||||
printf "%s " "${RESULTS[@]}"
|
||||
#printf "%s " "${RESULTS[@]}" >&2
|
||||
#printf "\n" >&2
|
||||
}
|
||||
|
||||
get_valid_neighbors () {
|
||||
get_valid_directions () {
|
||||
|
||||
IDX=$1
|
||||
NUM=1
|
||||
@ -134,14 +138,14 @@ get_valid_neighbors () {
|
||||
printf "%s" "$NUM"
|
||||
}
|
||||
|
||||
PATH_COUNT=0
|
||||
ITER=999999
|
||||
ITER=9999
|
||||
TOTAL=0
|
||||
for TRAILHEAD in "${TRAILHEADS[@]}"
|
||||
do
|
||||
COUNT=$( get_nine "1" "$( get_valid_neighbors "$TRAILHEAD" )" "$TRAILHEAD" )
|
||||
(( PATH_COUNT+=COUNT ))
|
||||
read -r -a PEAKS <<< "$( get_nine "1" "$( get_valid_directions "$TRAILHEAD" )" "$TRAILHEAD" )"
|
||||
COUNT=$( printf "%s " "${PEAKS[@]}" | grep -Eo '[0-9]*' | sort -u | wc -l )
|
||||
(( TOTAL+=COUNT ))
|
||||
(( ITER-- ))
|
||||
if [[ $ITER -eq 0 ]] ;then break; fi
|
||||
done
|
||||
|
||||
printf "%s\n" "$PATH_COUNT"
|
||||
printf "%s\n" "$TOTAL"
|
||||
|
Reference in New Issue
Block a user