diff options
author | June McEnroe <june@causal.agency> | 2022-12-11 22:31:50 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2022-12-11 22:33:32 -0500 |
commit | 90d74065023b3e0c57a132579d9d8c6fb1cedbca (patch) | |
tree | 17bfd7358af009eae918266db3a6ef039a28473f /2022 | |
parent | Solve day 10 part 2 (diff) | |
download | aoc-90d74065023b3e0c57a132579d9d8c6fb1cedbca.tar.gz aoc-90d74065023b3e0c57a132579d9d8c6fb1cedbca.zip |
Solve day 11 part 1
Diffstat (limited to '2022')
-rw-r--r-- | 2022/day11-1.awk | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/2022/day11-1.awk b/2022/day11-1.awk new file mode 100644 index 0000000..97a8148 --- /dev/null +++ b/2022/day11-1.awk @@ -0,0 +1,58 @@ +BEGIN { + FS = "[ :,]+"; +} +/^Monkey/ { + m = $2; +} +/Starting items/ { + for (i = 4; i <= NF; ++i) { + items[m,len[m]++] = $i; + } +} +/Operation/ { + op[m] = $6; + const[m] = $7; +} +/Test/ { + test[m] = $5; +} +/If true/ { + true[m] = $7; +} +/If false/ { + false[m] = $7; +} +END { + for (n = 1; n <= 20; ++n) { + for (m = 0; test[m]; ++m) { + for (i = 0; i < len[m]; ++i) { + insp[m]++; + item = items[m,i]; + delete items[m,i]; + if (op[m] == "+") { + item += const[m]; + } else if (op[m] == "*" && const[m] != "old") { + item *= const[m]; + } else { + item *= item; + } + item = int(item/3); + if (item % test[m] == 0) { + items[true[m],len[true[m]]++] = item; + } else { + items[false[m],len[false[m]]++] = item; + } + } + len[m] = 0; + } + } + for (m = 0; test[m]; ++m) { + if (insp[m] > max1) { + max2 = max1; + max1 = insp[m]; + } else if (insp[m] > max2) { + max2 = insp[m]; + } + } + print max1 * max2; +} |