3 filename=${1:-input.txt}
8 IFS="," read -u 3 -a orig_data
14 data=("${orig_data[@]}")
18 while [ $pos -le ${#data[@]} ]; do
19 loc1=${data[$((pos+1))]}
20 loc2=${data[$((pos+2))]}
21 res_loc=${data[$((pos+3))]}
24 data[$res_loc]=$((${data[$loc1]}+${data[$loc2]}))
27 data[$res_loc]=$((${data[$loc1]}*${data[$loc2]}))
33 echo "Invalid opcode: ${data[$pos]} at position $pos"
42 echo "Part 1: $(run_program 12 2)"
44 desired_output=19690720
46 for (( noun=0; noun < 100; noun++)); do
47 for (( verb=0; verb < 100; verb++)); do
48 if [ $(run_program $noun $verb) -eq $desired_output ]; then
49 echo "Part 2: $((noun * 100 + $verb)) $noun, $verb"