From 4e13fe6e80177b3df529843e8835636455b84eac Mon Sep 17 00:00:00 2001 From: Pascal Phelipot Date: Wed, 4 Dec 2024 22:59:18 +0100 Subject: [PATCH] day01part2 ok --- src/day01.zig | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/day01.zig b/src/day01.zig index 22087ee..1ada64e 100644 --- a/src/day01.zig +++ b/src/day01.zig @@ -31,9 +31,27 @@ fn solve(str_input: []const u8, allocator: std.mem.Allocator) !u128 { total += (@max(right_item, left_item) - @min(right_item, left_item)); } + const res2 = solve_part2(left, right); + std.debug.print("Result part 2: {d}\n", .{res2}); + return total; } +fn solve_part2(first: ArrayList(u32), second: ArrayList(u32)) u128 { + var result: u128 = 0; + for (first.items) |n| { + var count: u128 = 0; + for (second.items) |r| { + if (n == r) { + count += 1; + } + } + result += n * count; + } + + return result; +} + fn parse_line(line: []const u8) !struct { u32, u32 } { var parts = std.mem.tokenizeScalar(u8, line, ' '); if (parts.next()) |part| { @@ -86,3 +104,5 @@ test "day01_parse_list" { try expect(std.mem.eql(u32, left.items, &[_]u32{ 3, 4, 2, 1, 3, 3 })); try expect(std.mem.eql(u32, right.items, &[_]u32{ 4, 3, 5, 3, 9, 3 })); } + +test "day01_part2" {}