reduce code duplication in day07

This commit is contained in:
Patrick Michl 2024-12-07 18:42:37 +01:00
parent 2a8968f3b8
commit 67ae111303
No known key found for this signature in database
GPG Key ID: BFE0ACEE21CD5EB0

View File

@ -20,8 +20,8 @@ solve() {
}
}
p1() {
local input="$1" result=0
do_part() {
local part="$1" result=0
while read -r num; do
((result += num))
@ -32,34 +32,21 @@ p1() {
local nums=() target
read -ra nums <<<"${line#*: }"
target="${line%:*}"
solve 1 "$target" "${nums[@]}"
solve "$part" "$target" "${nums[@]}"
} &
done <<<"$input"
done
wait
)
printf '%d' "$result"
}
p1() {
do_part 1 <<<"$1"
}
p2() {
local input="$1" result=0
while read -r num; do
((result += num))
done < <(
while read -r line; do
while ((${NUM_JOBS@P} >= 16)); do wait -n; done
{
local nums=() target
read -ra nums <<<"${line#*: }"
target="${line%:*}"
solve 2 "$target" "${nums[@]}"
} &
done <<<"$input"
wait
)
printf '%d' "$result"
do_part 2 <<<"$1"
}
main "$@"