d1 zig
This commit is contained in:
		
							
								
								
									
										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)}); | ||||
| } | ||||
		Reference in New Issue
	
	Block a user