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: u32 = 0; while (lines.next()) |line| { var first_digit: u8 = 0; var first_digit_index: usize = 0; for (line[0..line.len - 1], 0..) |c, i| { const digit = try std.fmt.charToDigit(c, 10); if (digit > first_digit) { first_digit = digit; first_digit_index = i; } } std.debug.print("first = {d}\n", .{first_digit}); var second_digit: u8 = 0; if (first_digit_index == line.len - 2) { const c = line[line.len - 1]; second_digit = try std.fmt.charToDigit(c, 10); } else { for (line[first_digit_index + 1..]) |c| { const digit = try std.fmt.charToDigit(c, 10); if (digit > second_digit) { second_digit = digit; } } } std.debug.print("second = {d}\n", .{second_digit}); const joltage = first_digit * 10 + second_digit; 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(); }