aoc-2021/3_2.sh

50 lines
911 B
Bash
Executable File

#!/bin/bash
yarr=()
arr_=()
zeroes=0
ones=0
while read line; do
yarr+=("$line")
done
function asdf() {
arr=(${yarr[@]})
for ((i=0; i<${#arr[0]}; i++)); do
for ((j=0; j<${#arr[@]}; j++)); do
if [[ $(cut -c$((i+1)) <<< "${arr[$j]}") == 0 ]]; then
zeroes=$((zeroes+1))
else
ones=$((ones+1))
fi
done
if [[ $zeroes -lt $ones && $1 == 1 || $zeroes == $ones && $1 == 1 ]] || \
[[ $zeroes -gt $ones && $1 == 0 ]]; then
for ((j=0; j<${#arr[@]}; j++)); do
[[ $(cut -c$((i+1)) <<< "${arr[$j]}") == "0" ]] && arr_+=("${arr[$j]}")
done
else
for ((j=0; j<${#arr[@]}; j++)); do
[[ $(cut -c$((i+1)) <<< "${arr[$j]}") == "1" ]] && arr_+=("${arr[$j]}")
done
fi
arr=(${arr_[@]})
arr_=()
if [[ "${#arr[@]}" == 1 ]]; then
break
fi
zeroes=0
ones=0
done
}
asdf 0
echo 0: ${arr[0]}
uwu=${arr[0]}
asdf 1
owo=${arr[0]}
echo 1: ${arr[0]}
echo $((2#$uwu*2#$owo))