const std = @import("std"); const PATH = "input/day01.txt"; pub fn first(allocator: ?std.mem.Allocator) !isize { _ = allocator; const input = @embedFile(PATH); var ret: isize = 0; for (input) |ch| { switch (ch) { '(' => ret += 1, ')' => ret -= 1, else => {}, } } return ret; } pub fn second(allocator: ?std.mem.Allocator) !usize { _ = allocator; const input = @embedFile(PATH); var floor: usize = 0; for (input) |ch, idx| { switch (ch) { '(' => floor += 1, ')' => { if (floor == 0) return idx + 1; floor -= 1; }, else => unreachable, } } unreachable; } test "day01a" { try std.testing.expectEqual(@as(isize, 74), try first(std.testing.allocator)); } test "day01b" { try std.testing.expectEqual(@as(usize, 1795), try second(std.testing.allocator)); }