first commit

This commit is contained in:
Dusk 2022-12-02 20:41:31 +01:00
commit 83f75486a1
6 changed files with 7108 additions and 0 deletions

2237
day1/input Normal file

File diff suppressed because it is too large Load Diff

2260
day1/input.bck Normal file

File diff suppressed because it is too large Load Diff

32
day1/puzzle1.zig Normal file
View File

@ -0,0 +1,32 @@
const std = @import("std");
pub fn main() !void {
// read the input file
const input = try std.fs.cwd().openFile("input", .{});
defer input.close();
var buf_reader = std.io.bufferedReader(input.reader());
var in_stream = buf_reader.reader();
var buf: [1024]u8 = undefined;
var cal : i32 = 0;
var max_cal : i32 = 0;
while (try in_stream.readUntilDelimiterOrEof(&buf, '\n')) |line| {
for (line) |char| {
if (!std.ascii.isWhitespace(char)) { // Contains a number
const curr_cal = try std.fmt.parseInt(i32, line, 10);
cal += curr_cal;
break; // else branch not evaluated
}
} else { // All characters are whitelines
max_cal = @max(max_cal, cal);
cal = 0;
}
}
std.debug.print("Maximum Calories: {}\n", .{max_cal});
}

41
day1/puzzle2.zig Normal file
View File

@ -0,0 +1,41 @@
const std = @import("std");
pub fn main() !void {
// read the input file
const input = try std.fs.cwd().openFile("input", .{});
defer input.close();
var buf_reader = std.io.bufferedReader(input.reader());
var in_stream = buf_reader.reader();
var buf: [1024]u8 = undefined;
var cal : i32 = 0;
var max_cal : [3]i32 = .{0, 0, 0};
while (try in_stream.readUntilDelimiterOrEof(&buf, '\n')) |line| {
for (line) |char| {
if (!std.ascii.isWhitespace(char)) { // Contains a number
cal += std.fmt.parseInt(i32, line, 10) catch break;
break; // else branch not evaluated
}
} else { // All characters are whitelines
for (max_cal) |*max_i| {
if (cal > max_i.*) {
const aux = max_i.*;
max_i.* = cal;
cal = aux;
}
}
cal = 0;
}
}
var max_total : i32 = 0;
for (max_cal) |max_i| {
std.debug.print("Max : {}\n", .{max_i});
max_total += max_i;
}
std.debug.print("Maximum Calories: {}\n", .{max_total});
}

2501
day2/input Normal file

File diff suppressed because it is too large Load Diff

37
day2/puzzle1.zig Normal file
View File

@ -0,0 +1,37 @@
const std = @import("std");
const mem = std.mem;
const fmt = std.fmt;
const print = std.debug.print;
const input = @embedFile("input");
pub fn main() !void {
var total_points: u32 = 0;
// Split the input
var input_iter = mem.split(u8, input, "\n");
while (input_iter.next()) |line| {
// Input ends with an empty line
if (line.len == 0) continue;
// Converting character code to points
const op: i4 = @intCast(i4, line[0] -| 64);
const me: i4 = @intCast(i4, line[2] -| 87);
//rock - paper = -1 WIN
//rock - scissors = -2 LOSE
//paper - rock = 1 LOSE
//paper - scissors = -1 WIN
//scissors - rock = 2 WIN
//scissors - paper = 1 LOSE
switch (op - me) {
-1, 2 => total_points += 6,
-2, 1 => total_points += 0,
else => total_points += 3,
}
total_points += @intCast(u4, me);
}
print("{}\n", .{total_points});
}