d1 zig
This commit is contained in:
parent
f2dcc77fbd
commit
ad976b6960
33
2015/d1/main.zig
Normal file
33
2015/d1/main.zig
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
const input = @embedFile("input");
|
||||||
|
|
||||||
|
fn floorTester(in: []const u8) i32{
|
||||||
|
var floor: i32 = 0;
|
||||||
|
for (in) |c|{
|
||||||
|
switch (c){
|
||||||
|
'(' => floor += 1,
|
||||||
|
')' => floor -= 1,
|
||||||
|
else => unreachable,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return floor;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn whenBasement(in: []const u8) ?usize{
|
||||||
|
var floor: i32 = 0;
|
||||||
|
for (in, 0..) |c, i|{
|
||||||
|
switch (c){
|
||||||
|
'(' => floor += 1,
|
||||||
|
')' => floor -= 1,
|
||||||
|
else => unreachable,
|
||||||
|
}
|
||||||
|
if (floor < 0) return i+1;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn main() void{
|
||||||
|
std.debug.print("Is on floor {d}\n", .{floorTester(input)});
|
||||||
|
std.debug.print("Is in basement at {?}\n", .{whenBasement(input)});
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user