From 85ea5d299b2a5505d301250b6a37776552cb7c29 Mon Sep 17 00:00:00 2001 From: Patrick Michl Date: Thu, 5 Dec 2024 18:25:04 +0100 Subject: [PATCH] shfmt --- day01.sh | 22 ++++++++++------------ day02.sh | 21 +++++++++++---------- day03.sh | 11 ++++++----- day04.sh | 30 ++++++++++++++++-------------- day05.sh | 33 +++++++++++++++++---------------- 5 files changed, 60 insertions(+), 57 deletions(-) diff --git a/day01.sh b/day01.sh index 6062516..a7faa5f 100755 --- a/day01.sh +++ b/day01.sh @@ -1,26 +1,25 @@ #!/usr/bin/env bash -unset PATH; readonly PATH +unset PATH +readonly PATH source ./utils/main.sh source ./utils/array.sh p1() { local input="$1" a b tmp i local left=() right=() res=() - - + while read -r a b; do left+=("$a") right+=("$b") - done <<< "$input" + done <<<"$input" array.timsort left array.timsort right - for ((i=0; i < ${#left[@]}; i++)); do + for ((i = 0; i < ${#left[@]}; i++)); do tmp="$((left[i] - right[i]))" - echo "${left[$i]} - ${right[$i]} = ${tmp#-}" res+=("${tmp#-}") - done > log + done array.sum res } @@ -28,19 +27,18 @@ p1() { p2() { local input="$1" a b i j local left=() right=() res=() - - + while read -r a b; do left+=("$a") right+=("$b") - done <<< "$input" + done <<<"$input" for i in "${left[@]}"; do local tmp=0 for j in "${right[@]}"; do - (( i == j )) && ((tmp++)) + ((i == j)) && ((tmp++)) done - res+=("$((i*tmp))") + res+=("$((i * tmp))") done array.sum res diff --git a/day02.sh b/day02.sh index 3a1d95e..b6be191 100755 --- a/day02.sh +++ b/day02.sh @@ -1,14 +1,15 @@ #!/usr/bin/env bash -unset PATH; readonly PATH +unset PATH +readonly PATH source ./utils/main.sh source ./utils/array.sh is_report_valid() { local report=() current_sign='' i=0 - read -ra report <<< "$1" - - for (( i = 0; i < ${#report[@]} - 1; i++ )); do - local a="${report[i]}" b="${report[i+1]}" diff='' sign='' + read -ra report <<<"$1" + + for ((i = 0; i < ${#report[@]} - 1; i++)); do + local a="${report[i]}" b="${report[i + 1]}" diff='' sign='' diff="$((a - b))" ((${diff#-} >= 1 && ${diff#-} <= 3)) || return 1 @@ -30,7 +31,7 @@ p1() { while read -r line; do is_report_valid "$line" && ((result++)) - done <<< "$input" + done <<<"$input" printf '%d' "$result" } @@ -40,17 +41,17 @@ p2() { while read -r line; do local original_report - read -ra original_report <<< "$line" + read -ra original_report <<<"$line" is_report_valid "$line" && ((result++)) && continue - for (( i = 0; i < ${#original_report[@]}; i++ )); do + for ((i = 0; i < ${#original_report[@]}; i++)); do local report - report=("${original_report[@]::"$i"}" "${original_report[@]:"$((i+1))"}") + report=("${original_report[@]::"$i"}" "${original_report[@]:"$((i + 1))"}") is_report_valid "${report[*]}" && ((result++)) && continue 2 done - done <<< "$input" + done <<<"$input" printf '%d' "$result" } diff --git a/day03.sh b/day03.sh index 885a655..4757b35 100755 --- a/day03.sh +++ b/day03.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash -unset PATH; readonly PATH +unset PATH +readonly PATH source ./utils/main.sh p1() { @@ -23,11 +24,11 @@ p2() { while [[ -n "$input" ]]; do if [[ "$input" =~ mul\(([0-9]{1,3}),([0-9]{1,3})\)|do\(\)|don\'t\(\) ]]; then case "${BASH_REMATCH[0]}" in - do\(\)) do=true;; - don\'t\(\)) do=false;; - *) [[ "$do" == true ]] && result="$((result + (BASH_REMATCH[1] * BASH_REMATCH[2])))";; + do\(\)) do=true ;; + don\'t\(\)) do=false ;; + *) [[ "$do" == true ]] && result="$((result + (BASH_REMATCH[1] * BASH_REMATCH[2])))" ;; esac - + input="${input#*"${BASH_REMATCH[0]}"}" else input='' diff --git a/day04.sh b/day04.sh index 4fd7571..8448ea2 100755 --- a/day04.sh +++ b/day04.sh @@ -1,9 +1,11 @@ #!/usr/bin/env bash -unset PATH; readonly PATH +unset PATH +readonly PATH source ./utils/main.sh count_patterns_occurences() { - local input="$1"; shift + local input="$1" + shift local patterns=("$@") result=0 for pattern in "${patterns[@]}"; do @@ -25,18 +27,18 @@ count_patterns_occurences() { p1() { local input="$1" line result=0 cols=0 - read -ra line <<< "$input" - cols="$((${#line}+1))" + read -ra line <<<"$input" + cols="$((${#line} + 1))" local patterns=( "XMAS" "SAMX" "X.{$((cols))}M.{$((cols))}A.{$((cols))}S" "S.{$((cols))}A.{$((cols))}M.{$((cols))}X" - "X.{$((cols-1))}M.{$((cols-1))}A.{$((cols-1))}S" - "S.{$((cols-1))}A.{$((cols-1))}M.{$((cols-1))}X" - "X.{$((cols-2))}M.{$((cols-2))}A.{$((cols-2))}S" - "S.{$((cols-2))}A.{$((cols-2))}M.{$((cols-2))}X" + "X.{$((cols - 1))}M.{$((cols - 1))}A.{$((cols - 1))}S" + "S.{$((cols - 1))}A.{$((cols - 1))}M.{$((cols - 1))}X" + "X.{$((cols - 2))}M.{$((cols - 2))}A.{$((cols - 2))}S" + "S.{$((cols - 2))}A.{$((cols - 2))}M.{$((cols - 2))}X" ) count_patterns_occurences "$input" "${patterns[@]}" @@ -45,14 +47,14 @@ p1() { p2() { local input="$1" line result=0 cols=0 - read -ra line <<< "$input" - cols="$((${#line}+1))" + read -ra line <<<"$input" + cols="$((${#line} + 1))" local patterns=( - "M.M.{$((cols-2))}A.{$((cols-2))}S.S" - "M.S.{$((cols-2))}A.{$((cols-2))}M.S" - "S.M.{$((cols-2))}A.{$((cols-2))}S.M" - "S.S.{$((cols-2))}A.{$((cols-2))}M.M" + "M.M.{$((cols - 2))}A.{$((cols - 2))}S.S" + "M.S.{$((cols - 2))}A.{$((cols - 2))}M.S" + "S.M.{$((cols - 2))}A.{$((cols - 2))}S.M" + "S.S.{$((cols - 2))}A.{$((cols - 2))}M.M" ) count_patterns_occurences "$input" "${patterns[@]}" diff --git a/day05.sh b/day05.sh index 9c4b160..d3eb617 100755 --- a/day05.sh +++ b/day05.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash -unset PATH; readonly PATH +unset PATH +readonly PATH source ./utils/main.sh p1() { @@ -9,25 +10,25 @@ p1() { while read -r line; do [[ -z "$line" ]] && continue case "$line" in - [0-9]*\|[0-9]*) rules+=([${line%|*}]="${rules["${line%|*}"]:-} ${line#*|}");; - *) pages+=("$line");; + [0-9]*\|[0-9]*) rules+=([${line%|*}]="${rules["${line%|*}"]:-} ${line#*|}") ;; + *) pages+=("$line") ;; esac - done <<< "$input" + done <<<"$input" for page in "${pages[@]}"; do local page_arr - IFS=, read -ra page_arr <<< "$page" + IFS=, read -ra page_arr <<<"$page" - for ((i=0; i < ${#page_arr[@]}; i++)); do + for ((i = 0; i < ${#page_arr[@]}; i++)); do local current_page="${page_arr[i]}" local current_rules="${rules["$current_page"]:-}" [[ -z "${current_rules:-}" ]] && continue - for ((j=0; j < ${#page_arr[@]}; j++)); do + for ((j = 0; j < ${#page_arr[@]}; j++)); do [[ "$current_rules" =~ ${page_arr[j]} ]] && ((j < i)) && continue 3 done done - + result="$((result + ${page_arr[$(((${#page_arr[@]} - 1) / 2))]}))" done @@ -41,24 +42,24 @@ p2() { while read -r line; do [[ -z "$line" ]] && continue case "$line" in - [0-9]*\|[0-9]*) rules+=([${line%|*}]="${rules["${line%|*}"]:-} ${line#*|}");; - *) pages+=("$line");; + [0-9]*\|[0-9]*) rules+=([${line%|*}]="${rules["${line%|*}"]:-} ${line#*|}") ;; + *) pages+=("$line") ;; esac - done <<< "$input" + done <<<"$input" for page in "${pages[@]}"; do local page_arr incorrect='false' - IFS=, read -ra page_arr <<< "$page" + IFS=, read -ra page_arr <<<"$page" - for ((i=0; i < ${#page_arr[@]}; i++)); do + for ((i = 0; i < ${#page_arr[@]}; i++)); do local current_page="${page_arr[i]}" local current_rules="${rules["$current_page"]:-}" [[ -z "${current_rules:-}" ]] && continue - for ((j=0; j < ${#page_arr[@]}; j++)); do + for ((j = 0; j < ${#page_arr[@]}; j++)); do if [[ "$current_rules" =~ ${page_arr[j]} ]] && ((j < i)); then local removed_elem="${page_arr[j]}" - read -ra page_arr <<< "${page_arr[*]/"$removed_elem"}" + read -ra page_arr <<<"${page_arr[*]/"$removed_elem"/}" page_arr=("${page_arr[@]:0:$i}" "$removed_elem" "${page_arr[@]:$i}") incorrect='true' ((i--)) @@ -66,7 +67,7 @@ p2() { fi done done - + [[ "$incorrect" == 'true' ]] && result="$((result + ${page_arr[$(((${#page_arr[@]} - 1) / 2))]}))" done