From 22fa29f09d846989a0b250d15fb7d1db3506fedc Mon Sep 17 00:00:00 2001 From: Pierre Jeanjean Date: Tue, 7 Dec 2021 12:00:07 +0100 Subject: [PATCH] Day 7 --- 07/01.sh | 23 +++++++++++++++++++++++ 07/02.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100755 07/01.sh create mode 100755 07/02.sh diff --git a/07/01.sh b/07/01.sh new file mode 100755 index 0000000..60f76fe --- /dev/null +++ b/07/01.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +read line +positions=( ${line//,/ } ) +min_consumption=-1 +max_coordinate=-1 +for position in ${positions[@]}; do + if [ $max_coordinate -eq -1 ] || [ $position -gt $max_coordinate ]; then + max_coordinate=$position + fi +done +for i in $(seq 0 $max_coordinate); do + curr_consumption=0 + for position in ${positions[@]}; do + temp_curr_consumption=$((position-i)) + temp_curr_consumption=${temp_curr_consumption#-} + curr_consumption=$((curr_consumption+temp_curr_consumption)) + done + if [ $min_consumption -eq -1 ] || [ $curr_consumption -lt $min_consumption ]; then + min_consumption=$curr_consumption + fi +done +echo $min_consumption diff --git a/07/02.sh b/07/02.sh new file mode 100755 index 0000000..8ff3153 --- /dev/null +++ b/07/02.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +read line +positions=( ${line//,/ } ) +min_consumption=-1 +max_coordinate=-1 +consumptions=( 0 ) +for position in ${positions[@]}; do + if [ $max_coordinate -eq -1 ] || [ $position -gt $max_coordinate ]; then + max_coordinate=$position + fi +done +for i in $(seq $max_coordinate); do + consumptions+=( $((consumptions[i-1]+i)) ) +done +for i in $(seq 0 $max_coordinate); do + curr_consumption=0 + for position in ${positions[@]}; do + temp_curr_consumption=$((position-i)) + temp_curr_consumption=${temp_curr_consumption#-} + curr_consumption=$((curr_consumption+consumptions[temp_curr_consumption])) + done + if [ $min_consumption -eq -1 ] || [ $curr_consumption -lt $min_consumption ]; then + min_consumption=$curr_consumption + fi +done +echo $min_consumption