day 1 in zig aaaaaaaaaa

This commit is contained in:
Scramble 2022-12-03 03:05:48 +00:00
parent f600082452
commit b247901899
4 changed files with 2313 additions and 0 deletions

View File

@ -1,2 +1,3 @@
part1
part2
*.o

2259
zig/1/input.txt Normal file

File diff suppressed because it is too large Load Diff

25
zig/1/part1.zig Normal file
View File

@ -0,0 +1,25 @@
const std = @import("std");
pub fn main() !void {
var file = try std.fs.cwd().openFile("input.txt", .{});
defer file.close();
var a = std.io.bufferedReader(file.reader());
var readerStream = a.reader();
var buf: [32]u8 = undefined;
var max: i32 = 0;
var cur: i32 = 0;
while (try readerStream.readUntilDelimiterOrEof(&buf, '\n')) |line| {
if (std.mem.eql(u8, line, "")) {
max = std.math.max(max, cur);
cur = 0;
} else {
cur += try std.fmt.parseInt(i32, line, 10);
}
}
max = std.math.max(max, cur);
cur = 0;
std.debug.print("{d}\n", .{max});
}

28
zig/1/part2.zig Normal file
View File

@ -0,0 +1,28 @@
const std = @import("std");
pub fn main() !void {
var file = try std.fs.cwd().openFile("input.txt", .{});
defer file.close();
var a = std.io.bufferedReader(file.reader());
var readerStream = a.reader();
var buf: [32]u8 = undefined;
var top = [3]i32{ 0, 0, 0 };
var cur: i32 = 0;
while (try readerStream.readUntilDelimiterOrEof(&buf, '\n')) |line| {
if (std.mem.eql(u8, line, "")) {
top[0] = std.math.max(top[0], cur);
std.sort.sort(i32, &top, {}, std.sort.asc(i32));
cur = 0;
} else {
cur += try std.fmt.parseInt(i32, line, 10);
}
}
var sum: i32 = 0;
for (top) |val| {
sum += val;
}
std.debug.print("{d}\n", .{sum});
}