From 2a21e615b075710bcedf65b334a3811b170080c6 Mon Sep 17 00:00:00 2001 From: Brett Parker <iDunno@sommitrealweird.co.uk> Date: Sat, 5 Dec 2020 16:56:23 +0000 Subject: [PATCH] Bash version of day5 --- day5/get_seat_id.sh | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 day5/get_seat_id.sh diff --git a/day5/get_seat_id.sh b/day5/get_seat_id.sh new file mode 100644 index 0000000..971394a --- /dev/null +++ b/day5/get_seat_id.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +parse_line() { + line=$1 + row=${line:0:7} + col=${line:7} + row_number=$(row_part=${row//F/0}; row_part=${row_part//B/1}; echo $((2#$row_part))) + col_number=$(col_part=${col//L/0}; col_part=${col_part//R/1}; echo $((2#$col_part))) + seat_id=$((($row_number*8) + $col_number)) + echo "$seat_id,$row_number,$col_number" +} + +exec 3<input.txt + +declare -A seats + +while read -u 3 line; do + data=$(parse_line $line) + seat_id=${data%%,*} + row_col=${data#*,} + seats[$seat_id]=$row_col +done + +sorted_seats=( $(echo "${!seats[@]}" | tr ' ' '\n' | sort -g) ) + +echo Last seat id: ${sorted_seats[$((${#sorted_seats[@]}-1))]} + +# find our seat by going through the sorted list and finding the first mismatch +seat_num=${sorted_seats[0]} +for seat in ${sorted_seats[@]}; do + if [ $seat -ne $seat_num ]; then + echo "Your seat number is: $seat_num" + break + fi + seat_num=$((seat_num+1)) +done + +exit 0 + -- 2.39.5