reduce code duplication in day07
This commit is contained in:
parent
2a8968f3b8
commit
67ae111303
31
day07.sh
31
day07.sh
@ -20,8 +20,8 @@ solve() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p1() {
|
do_part() {
|
||||||
local input="$1" result=0
|
local part="$1" result=0
|
||||||
|
|
||||||
while read -r num; do
|
while read -r num; do
|
||||||
((result += num))
|
((result += num))
|
||||||
@ -32,34 +32,21 @@ p1() {
|
|||||||
local nums=() target
|
local nums=() target
|
||||||
read -ra nums <<<"${line#*: }"
|
read -ra nums <<<"${line#*: }"
|
||||||
target="${line%:*}"
|
target="${line%:*}"
|
||||||
solve 1 "$target" "${nums[@]}"
|
solve "$part" "$target" "${nums[@]}"
|
||||||
} &
|
} &
|
||||||
done <<<"$input"
|
done
|
||||||
wait
|
wait
|
||||||
)
|
)
|
||||||
|
|
||||||
printf '%d' "$result"
|
printf '%d' "$result"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p1() {
|
||||||
|
do_part 1 <<<"$1"
|
||||||
|
}
|
||||||
|
|
||||||
p2() {
|
p2() {
|
||||||
local input="$1" result=0
|
do_part 2 <<<"$1"
|
||||||
|
|
||||||
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"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
main "$@"
|
main "$@"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user