From 9c22642be42fa4471ff617df6638167fb21490a4 Mon Sep 17 00:00:00 2001 From: Adam Millerchip Date: Thu, 11 Aug 2022 18:32:17 +0900 Subject: [PATCH] Day 1 part 1! --- 2020/zig/.gitignore | 1 + 2020/zig/src/day01.zig | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/2020/zig/.gitignore b/2020/zig/.gitignore index 9f71afc..c2b2b95 100644 --- a/2020/zig/.gitignore +++ b/2020/zig/.gitignore @@ -1,3 +1,4 @@ zig-cache/ zig-out/ +data/ build_runner.zig diff --git a/2020/zig/src/day01.zig b/2020/zig/src/day01.zig index b2d5b77..a628bb8 100644 --- a/2020/zig/src/day01.zig +++ b/2020/zig/src/day01.zig @@ -12,7 +12,29 @@ const gpa = util.gpa; const data = @embedFile("../data/day01.txt"); pub fn main() !void { + var it = tokenize(u8, data, "\n"); + // Not sure if allocating a massive buffer and tracking the size is the right approach? + var buffer: [1000]u16 = undefined; + var i: usize = 0; + while (it.next()) |line| { + const int = try parseInt(u16, line, 10); + buffer[i] = int; + // Can we use continue expression? + i = i + 1; + } + + var answer: u32 = 0; + outer: for (buffer[0..i]) |a, j| { + for (buffer[(j+1)..i]) |b| { + if (a + b == 2020) { + answer = @as(u32, a) * b; + break :outer; + } + } + } + + print("{d}\n", .{answer}); } // Useful stdlib functions