const std = @import("std"); pub const title = "Day 03: Lobby"; pub fn run(_: std.mem.Allocator) !void { const input = @embedFile("./input/day03.txt"); var lines = std.mem.tokenizeScalar(u8, input, '\n'); var accumulator: u64 = 0; const nr_of_digits = 12; while (lines.next()) |line| { var joltage: u64 = 0; var start: usize = 0; for (0..nr_of_digits) |i| { const end = line.len - (nr_of_digits - i) + 1; std.debug.print("checking {d} to {d}\n", .{start, end}); var digit: u8 = 0; for (line[start..end], start..) |c, di| { const d = try std.fmt.charToDigit(c, 10); if (d > digit) { digit = d; start = di + 1; } } std.debug.print("digit = {d}\n", .{digit}); joltage += digit * std.math.pow(u64, 10, nr_of_digits - (i + 1)); } std.debug.print("joltage = {d}\n", .{joltage}); accumulator += joltage; } var buffer: [8]u8 = undefined; var stdout_writer = std.fs.File.stdout().writer(&buffer); const stdout = &stdout_writer.interface; try stdout.print("{d}\n", .{accumulator}); try stdout.flush(); }