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