diff --git a/05/01.sh b/05/01.sh new file mode 100755 index 0000000..4e9961e --- /dev/null +++ b/05/01.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +# still Paula fronting! i think! +data="$(cat /tmp/05 | sed 's/ / _ /g;s/\[//g;s/\]//g')" + +x=0 +IFS=$'\n' +( + while read line; do + [[ "$line" == '1 '* ]] && break + + IFS=' ' + uwu=($line) + for (( i=0; i<${#uwu[@]}; i++ )); do + [[ "${uwu[$i]}" != _ ]] && meow[$i]="${meow[$i]} ${uwu[$i]}" + done + done + read line; + while read line; do + ins=($line) + from=$((${ins[3]}-1)) + to=$((${ins[5]}-1)) + + asd=(${meow[$from]}) + + echo "moving ${ins[1]} things from ${ins[3]} to ${ins[5]}" + echo "from, initial: ${meow[$from]}" + echo "what? ${asd[@]:0:${ins[1]}}" + echo "to, initial: ${meow[$to]}" + meow[$from]=${asd[@]:${ins[1]}:${#asd[@]}} + meow[$to]="$(echo ${asd[@]:0:${ins[1]}}| rev) ${meow[$to]}" + echo "from, after: ${meow[$from]}" + echo "to, after: ${meow[$to]}" + echo --- + done + + IFS=' ' + x='' + for (( i=0; i<${#meow[@]}; i++ )); do + a=(${meow[$i]}) + echo "$i: ${meow[$i]}" + x="$x${a[0]}" + done + echo "$x" +) <<< "$data" + diff --git a/05/README.md b/05/README.md new file mode 100644 index 0000000..44754de --- /dev/null +++ b/05/README.md @@ -0,0 +1,17 @@ +# day 05 (actually 09, oops) + +again, put your things in /tmp/05 + +## part 1 + +biggest part of what threw me off is the fact that I can't read. +I have assumed that multiple crate moves were meant as +"grab n crates at once", while in reality they meant "grab one, +then another, then another..." +That's why L31 has that funky subshell with a rev. + +Wrapping everything in () was a fun hack I thought about to parse +the header separately from the rest of the code - probably wouldn't +be needed if Tulip was fronting and writing the code, she likes to +accept input from stdin (whereas I (Paula?) like to accept input +from argv)