Bash 2022/day4: remove nearly everything :-)

This commit is contained in:
2022-12-08 11:45:40 +01:00
parent 325c8254b8
commit d116b98ae9

View File

@@ -14,52 +14,25 @@
. common.bash . common.bash
export LANG=C export LANG=C
declare -a sections
parse() { parse() {
local -i _part="$1"
local -a _arr local -a _arr
local -i _tmp global -ig res=0
while IFS=-, read -ra _arr; do while IFS=-, read -ra _arr; do
# arrange the two sections so that the lowest is the first # shellcheck disable=2068
if ((_arr[0] > _arr[2])); then set -- ${_arr[@]}
((_tmp=_arr[0], _arr[0]=_arr[2], _arr[2]=_tmp)) if (( _part == 1 )); then
((_tmp=_arr[1], _arr[1]=_arr[3], _arr[3]=_tmp)) (( ( ($1 >= $3 && $2 <= $4) || ($1 <= $3 && $2 >= $4) ) && res++ ))
else
(( ( ($1 >= $3 && $1 <= $4) || ($3 >= $1 && $3 <= $2) ) && res++ ))
fi fi
sections+=("${_arr[*]}")
done
#readarray -t input
}
part1() {
declare -ig res=0
local -a _sect
for line in "${sections[@]}"; do
# shellcheck disable=SC2206
_sect=($line)
(( _sect[1] >= _sect[3] ||
(_sect[0] == _sect[2] && _sect[3] >= _sect[1]) )) && (( res++ ))
done
}
part2() {
declare -ig res=0
local -a _sect
for line in "${sections[@]}"; do
# shellcheck disable=SC2206
_sect=($line)
(( _sect[2] <= _sect[1] )) && (( res++ ))
done done
} }
solve() { solve() {
if (($1 == 1)); then :
part1
else
part2
fi
} }
main "$@" main "$@"