diff options
author | Leah Neukirchen <leah@vuxu.org> | 2022-12-03 17:01:02 +0100 |
---|---|---|
committer | Leah Neukirchen <leah@vuxu.org> | 2022-12-03 21:47:52 +0100 |
commit | 1539d9a155be2f3e43a33f41befd00edc5c41b54 (patch) | |
tree | dbc88e277c2ee2dd60cd1a37bd16030e3cbf152f /day02.zig | |
parent | 3569846dad2bae95412762363ff9301f0540ab62 (diff) | |
download | adventofcode2022-1539d9a155be2f3e43a33f41befd00edc5c41b54.tar.gz adventofcode2022-1539d9a155be2f3e43a33f41befd00edc5c41b54.tar.xz adventofcode2022-1539d9a155be2f3e43a33f41befd00edc5c41b54.zip |
day02
Diffstat (limited to 'day02.zig')
-rw-r--r-- | day02.zig | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/day02.zig b/day02.zig new file mode 100644 index 0000000..7278131 --- /dev/null +++ b/day02.zig @@ -0,0 +1,27 @@ +// hat tip to https://gitlab.cs.washington.edu/fidelp/advent-of-code-2022/-/blob/main/advent-2022-02-rough.fs + +const std = @import("std"); +const data = @embedFile("day02"); + +pub fn main() !void { + var lines = std.mem.split(u8, data, "\n"); + + var part1: i32 = 0; + var part2: i32 = 0; + + while (lines.next()) |line| { + if (line.len == 0) + break; + + var p1: i32 = line[0] - 'A'; + var p2: i32 = line[2] - 'X'; + + part1 += 3 * @rem(p2 - p1 + 4, 3) + (p2 + 1); + + p2 = @rem(p1 + p2 + 2, 3); + + part2 += 3 * @rem(p2 - p1 + 4, 3) + (p2 + 1); + } + + std.debug.print("{} {}\n", .{ part1, part2 }); +} |