From 7ee787f97616a55c2a9f8dae4efdd4f2e2cc2f48 Mon Sep 17 00:00:00 2001 From: Codinget Date: Fri, 1 Dec 2023 23:27:45 +0100 Subject: [PATCH] day 1 --- .gitignore | 1 + day1/day1.sh | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 .gitignore create mode 100755 day1/day1.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3f9177e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +input diff --git a/day1/day1.sh b/day1/day1.sh new file mode 100755 index 0000000..905014a --- /dev/null +++ b/day1/day1.sh @@ -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