about summary refs log tree commit diff
diff options
context:
space:
mode:
authorNguyễn Gia Phong <mcsinyx@disroot.org>2022-12-18 02:28:47 +0900
committerNguyễn Gia Phong <mcsinyx@disroot.org>2022-12-18 02:47:39 +0900
commit5e4395eab49524f41f217f664388a170924ec933 (patch)
tree67f6af9850412da79763f51e03a570a7a235176f
parentcde44cdda55d0a0139a8e6a98e1aa47831972395 (diff)
downloadcp-5e4395eab49524f41f217f664388a170924ec933.tar.gz
[aoc/2022] Finish day 10 HEAD main
-rwxr-xr-xaoc/2022/10/part-one.awk8
-rwxr-xr-xaoc/2022/10/part-two.awk10
2 files changed, 18 insertions, 0 deletions
diff --git a/aoc/2022/10/part-one.awk b/aoc/2022/10/part-one.awk
new file mode 100755
index 0000000..756464e
--- /dev/null
+++ b/aoc/2022/10/part-one.awk
@@ -0,0 +1,8 @@
+#!/usr/bin/env -S awk -f
+BEGIN { cycle = x = 1 }
+{ cycle++ }
+cycle % 40 == 20 { strength += cycle * x }
+{ x += $2 }
+/^addx/ { cycle++ }
+/^addx/ && cycle % 40 == 20 { strength += cycle * x }
+END { print strength }
diff --git a/aoc/2022/10/part-two.awk b/aoc/2022/10/part-two.awk
new file mode 100755
index 0000000..9126306
--- /dev/null
+++ b/aoc/2022/10/part-two.awk
@@ -0,0 +1,10 @@
+#!/usr/bin/env -S awk -f
+function cycle (c, x) {
+  printf x - 2 < c && c < x + 2 ? "#" : "."
+  printf c == 39 ? "\n" : ""
+  return (c + 1) % 40
+}
+BEGIN { x = 1 }
+{ c = cycle(c, x) }
+/^addx/ { c = cycle(c, x) }
+{ x += $2 }