Compare commits
No commits in common. "259efbf3593645ab29aece62c15528131c237cc7" and "ed8b19926ca0a245c10944621512f71e4411263b" have entirely different histories.
259efbf359
...
ed8b19926c
|
@ -0,0 +1,95 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
firstDigits() {
|
||||
sed 's|^[^0-9]*\([0-9]\).*|\1|'
|
||||
}
|
||||
|
||||
lastDigits() {
|
||||
sed 's|^.*\([0-9]\)[^0-9]*$|\1|'
|
||||
}
|
||||
|
||||
sumTensDigits() {
|
||||
echo $(("$(xargs -I '{}' echo '{} * 10 +') 0"))
|
||||
}
|
||||
|
||||
sumOnesDigits() {
|
||||
echo $(("$(xargs -I '{}' echo '{} +') 0"))
|
||||
}
|
||||
|
||||
detectDigits() {
|
||||
sed '
|
||||
s|zero|0|g;
|
||||
|
||||
s|twone|2|g;
|
||||
s|one|1|g;
|
||||
|
||||
s|eightwo|8|g;
|
||||
s|two|2|g;
|
||||
|
||||
s|eighthree|8|g;
|
||||
s|three|3|g;
|
||||
|
||||
s|four|4|g;
|
||||
s|five|5|g;
|
||||
s|six|6|g;
|
||||
s|seven|7|g;
|
||||
|
||||
s|nineight|9|g;
|
||||
s|eight|8|g;
|
||||
|
||||
s|nine|9|g
|
||||
'
|
||||
}
|
||||
|
||||
detectReverseDigits() {
|
||||
sed '
|
||||
s|enorez|1|g
|
||||
s|orez|0|g;
|
||||
|
||||
s|thgieno|8|g;
|
||||
s|eno|1|g;
|
||||
|
||||
s|owt|2|g;
|
||||
|
||||
s|thgieerht|8|g;
|
||||
s|eerht|3|g;
|
||||
|
||||
s|ruof|4|g;
|
||||
|
||||
s|thgievif|8|g;
|
||||
s|evif|5|g;
|
||||
|
||||
s|xis|6|g;
|
||||
|
||||
s|enineves|9|g
|
||||
s|neves|7|g;
|
||||
|
||||
s|thgie|8|g;
|
||||
|
||||
s|enin|9|g
|
||||
'
|
||||
}
|
||||
|
||||
part1 () {
|
||||
local input=$(cat)
|
||||
local tensSum=$(<<< "$input" firstDigits | sumTensDigits)
|
||||
local onesSum=$(<<< "$input" lastDigits | sumOnesDigits)
|
||||
echo $(("$tensSum + $onesSum"))
|
||||
}
|
||||
|
||||
part2 () {
|
||||
local input=$(cat)
|
||||
local tensSum=$(<<< "$input" detectDigits | firstDigits | sumTensDigits)
|
||||
local onesSum=$(<<< "$input" rev | detectReverseDigits | firstDigits | sumOnesDigits)
|
||||
echo $(("$tensSum + $onesSum"))
|
||||
}
|
||||
|
||||
main () {
|
||||
local input=$(cat)
|
||||
echo "Answer 1: $(part1 <<< "$input")"
|
||||
echo "Answer 2: $(part2 <<< "$input")"
|
||||
}
|
||||
|
||||
main
|
Loading…
Reference in New Issue