commit
7ee787f976
@ -0,0 +1 @@ |
|||||||
|
input |
@ -0,0 +1,55 @@ |
|||||||
|
#!/bin/bash |
||||||
|
|
||||||
|
replacedigits() { |
||||||
|
rep="$1" |
||||||
|
i="0" |
||||||
|
len="${#rep}" |
||||||
|
ret="" |
||||||
|
while [ $i -lt ${len} ]; do |
||||||
|
case "${rep:${i}:1}" in |
||||||
|
0|1|2|3|4|5|6|7|8|9) |
||||||
|
ret="${ret}${rep:${i}:1}" |
||||||
|
i=$((i+1)) |
||||||
|
continue |
||||||
|
;; |
||||||
|
esac |
||||||
|
#echo ${i} ${rep} ${rep:${i}:1} |
||||||
|
#echo ${rep:${i}:3} ${rep:${i}:4} ${rep:${i}:5} |
||||||
|
if [ ${rep:${i}:3} = one ]; then |
||||||
|
ret="${ret}1" |
||||||
|
elif [ ${rep:${i}:3} = two ]; then |
||||||
|
ret="${ret}2" |
||||||
|
elif [ ${rep:${i}:5} = three ]; then |
||||||
|
ret="${ret}3" |
||||||
|
elif [ ${rep:${i}:4} = four ]; then |
||||||
|
ret="${ret}4" |
||||||
|
elif [ ${rep:${i}:4} = five ]; then |
||||||
|
ret="${ret}5" |
||||||
|
elif [ ${rep:${i}:3} = six ]; then |
||||||
|
ret="${ret}6" |
||||||
|
elif [ ${rep:${i}:5} = seven ]; then |
||||||
|
ret="${ret}7" |
||||||
|
elif [ ${rep:${i}:5} = eight ]; then |
||||||
|
ret="${ret}8" |
||||||
|
elif [ ${rep:${i}:4} = nine ]; then |
||||||
|
ret="${ret}9" |
||||||
|
fi |
||||||
|
i="$((i+1))" |
||||||
|
done |
||||||
|
echo "$ret" |
||||||
|
} |
||||||
|
|
||||||
|
sum=0; |
||||||
|
for number in $(cat "$1" | sed s/[^0-9]//g); do |
||||||
|
sum=$((sum+${number:0:1}*10+${number:${#number}-1:${#number}})) |
||||||
|
done |
||||||
|
printf "part 1: %d\n" $sum |
||||||
|
|
||||||
|
sum=0; |
||||||
|
for line in $(cat "$1"); do |
||||||
|
number="$(replacedigits $line)" |
||||||
|
digits="$((10*${number:0:1}+${number:$((${#number}-1)):${#number}}))" |
||||||
|
#printf "%s %s %s\n" $line $number $digits |
||||||
|
sum=$((sum+${digits})) |
||||||
|
done |
||||||
|
printf "part 2: %d\n" $sum |
Loading…
Reference in new issue