it works
This commit is contained in:
parent
0547fa5a1a
commit
ac8752045c
|
|
@ -8,6 +8,30 @@ pub fn main() !void {
|
|||
std.debug.print("Hello, {s}!\n", .{"World"});
|
||||
}
|
||||
|
||||
fn solve(str_input: []const u8, allocator: std.mem.Allocator) !u32 {
|
||||
const left, const right = try get_list(str_input, allocator);
|
||||
defer {
|
||||
left.deinit();
|
||||
right.deinit();
|
||||
}
|
||||
|
||||
std.mem.sort(u32, left.items, {}, comptime std.sort.asc(u32));
|
||||
std.mem.sort(u32, right.items, {}, comptime std.sort.asc(u32));
|
||||
|
||||
try expect(std.mem.eql(u32, left.items, &[_]u32{ 1, 2, 3, 3, 3, 4 }));
|
||||
try expect(std.mem.eql(u32, right.items, &[_]u32{ 3, 3, 3, 4, 5, 9 }));
|
||||
|
||||
try expect(left.items.len == right.items.len);
|
||||
var total: u32 = 0;
|
||||
for (0..left.items.len) |index| {
|
||||
const left_item = left.items[index];
|
||||
const right_item = right.items[index];
|
||||
total += (right_item - left_item);
|
||||
}
|
||||
|
||||
return total;
|
||||
}
|
||||
|
||||
fn parse_line(line: []const u8) !struct { u32, u32 } {
|
||||
var parts = std.mem.tokenizeScalar(u8, line, ' ');
|
||||
const left = try std.fmt.parseInt(u32, parts.next().?, 10);
|
||||
|
|
@ -33,14 +57,8 @@ const test_allocator = std.testing.allocator;
|
|||
const input = "3 4\n4 3\n2 5\n1 3\n3 9\n3 3";
|
||||
|
||||
test "day01_given_example" {
|
||||
const left, const right = try get_list(input, test_allocator);
|
||||
defer {
|
||||
left.deinit();
|
||||
right.deinit();
|
||||
}
|
||||
// const expected_distances = [_]u32{ 2, 1, 0, 1, 2, 5 };
|
||||
// const expected_distance_total: u32 = 11;
|
||||
try expect(false);
|
||||
const total = try solve(input, test_allocator);
|
||||
try expect(total == 11);
|
||||
}
|
||||
|
||||
test "day01_parse_line" {
|
||||
|
|
|
|||
Loading…
Reference in New Issue