Day 8 Part 1 Not Working
This commit is contained in:
60
2024/day-8/solution-1.sh
Normal file
60
2024/day-8/solution-1.sh
Normal file
@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
FILE=input
|
||||
LEN=$( head -1 "$FILE" | sed -E 's/(.)/\1\ /g' | awk '{printf NF}' )
|
||||
|
||||
read -r -a MAP_ARRAY <<< "$( < "$FILE" sed -E 's/(.)/\1\ /g' | paste -s -d ' ' )"
|
||||
read -r -a SHADOW_ARRAY <<< "$( < "$FILE" sed -E 's/(.)/\1\ /g' | paste -s -d ' ' )"
|
||||
#printf "MAP_LEN: %s, NF: %s\n" "${#MAP_ARRAY[@]}" "$LEN" >&2
|
||||
|
||||
for CHAR in $( < "$FILE" grep -Eo '[^\.]' | sort -u | paste -s -d' ' )
|
||||
do
|
||||
# Get indices for antennae
|
||||
LINE="$(
|
||||
for (( i=0; i<${#MAP_ARRAY[@]}; i++ ))
|
||||
do
|
||||
if [[ ${MAP_ARRAY[i]} == "$CHAR" ]]
|
||||
then
|
||||
printf "%s " "$i"
|
||||
fi
|
||||
done
|
||||
)"
|
||||
printf "%s\n" "$LINE" >&2
|
||||
read -r -a IDX_ARRAY <<< "$LINE"
|
||||
#printf "idx: %s " "${IDX_ARRAY[@]}" >&2
|
||||
#printf "\n" >&2
|
||||
|
||||
# Get all combinations
|
||||
for (( i=0; i<${#IDX_ARRAY[@]}-1; i++ ))
|
||||
do
|
||||
A=${IDX_ARRAY[i]}
|
||||
for (( j=i+1; j<${#IDX_ARRAY[@]}; j++ ))
|
||||
do
|
||||
B=${IDX_ARRAY[j]}
|
||||
DIFF=$(( B - A ))
|
||||
HEAD=$(( A - DIFF ))
|
||||
TAIL=$(( B + DIFF ))
|
||||
printf "char: %s, i: %s, j: %s, DIFF: %s, HEAD: %s, TAIL: %s\n" "$CHAR" "$A" "$B" "$DIFF" "$HEAD" "$TAIL" >&2
|
||||
for VALUE in $HEAD $TAIL
|
||||
do
|
||||
if [[ $VALUE -gt ${#MAP_ARRAY[@]} ]] || [[ $VALUE -lt 0 ]]
|
||||
then
|
||||
continue
|
||||
fi
|
||||
SHADOW_ARRAY[VALUE]=X # Mark on shadow map
|
||||
done
|
||||
done
|
||||
done
|
||||
unset IDX_ARRAY
|
||||
|
||||
done
|
||||
COUNT=0
|
||||
for (( i=0; i<${#SHADOW_ARRAY[@]}; i++ ))
|
||||
do
|
||||
if [[ ${SHADOW_ARRAY[i]} == "X" ]]
|
||||
then
|
||||
(( COUNT++ ))
|
||||
fi
|
||||
done
|
||||
printf "%s\n" "$COUNT"
|
||||
printf "%s" "${SHADOW_ARRAY[@]}" | fold -w "$LEN" | sed -E 's/(.)/\1\ /g'
|
Reference in New Issue
Block a user