Rename days to 2 digits always
[advent-of-code-2019.git] / day07 / part1.sh
diff --git a/day07/part1.sh b/day07/part1.sh
new file mode 100644 (file)
index 0000000..f7e99ca
--- /dev/null
@@ -0,0 +1,59 @@
+#!/bin/bash
+
+set -u
+set -e
+
+. "$(dirname $(readlink -f "$BASH_SOURCE"))/computer.sh"
+
+exec 3<input-full.txt
+
+OLDIFS=$IFS
+IFS="," read -u 3 -a orig_data
+IFS=$OLDIFS
+
+echo "Part 1:"
+
+run_amplifier() {
+    sequence=($@)
+    output=0
+    for phase in ${sequence[@]}; do
+        output=$(echo -e "$phase\n$output" | run_program orig_data)
+    done
+    echo "$output"
+}
+
+values="01234"
+biggest_output=0
+biggest_order="01234"
+for (( a=0; a<${#values}; a++ )); do
+    values_2="${values:0:$a}${values:$((a+1))}"
+    value_1=${values:$a:1}
+    for (( b=0; b<${#values_2}; b++ )); do
+        values_3="${values_2:0:$b}${values_2:$((b+1))}"
+        value_2=${values_2:$b:1}
+        for (( c=0; c<${#values_3}; c++ )); do
+            values_4="${values_3:0:$c}${values_3:$((c+1))}"
+            value_3=${values_3:$c:1}
+            for (( d=0; d<${#values_4}; d++ )); do
+                value_5="${values_4:0:$d}${values_4:$((d+1))}"
+                value_4="${values_4:d:1}"
+                output=$(run_amplifier $value_1 $value_2 $value_3 $value_4 $value_5)
+                if [ $output -gt $biggest_output ]; then
+                    biggest_output=$output
+                    biggest_order="${value_1}${value_2}${value_3}${value_4}${value_5}"
+                fi
+            done
+        done
+    done
+done
+
+echo "Got biggest output $biggest_output with phases $biggest_order"
+
+exit 0
+
+output=0
+for val in 4 3 2 1 0; do
+    output=$(echo -e "$val\n$output" | run_program orig_data)
+done
+echo $output
+