lmao
This commit is contained in:
		
							
								
								
									
										53
									
								
								src/day12.zig
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								src/day12.zig
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					const std = @import("std");
 | 
				
			||||||
 | 
					const util = @import("util.zig");
 | 
				
			||||||
 | 
					const mem = std.mem;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pub fn main() !void {
 | 
				
			||||||
 | 
					    const input = @embedFile("data/day12.txt");
 | 
				
			||||||
 | 
					    const sln = try solve(util.gpa, input);
 | 
				
			||||||
 | 
					    std.debug.print("{d}\n", .{sln.a});
 | 
				
			||||||
 | 
					    std.debug.print("{d}\n", .{sln.b});
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const Solution = struct {
 | 
				
			||||||
 | 
					    a: usize,
 | 
				
			||||||
 | 
					    b: usize,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fn solve(alloc: mem.Allocator, input: []const u8) !Solution {
 | 
				
			||||||
 | 
					    _ = alloc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    var it = util.splitLines(input);
 | 
				
			||||||
 | 
					    while (it.next()) |line| {
 | 
				
			||||||
 | 
					        if (line.len == 0) continue;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        var lit = util.splitSpace(line);
 | 
				
			||||||
 | 
					        const record = lit.next().?;
 | 
				
			||||||
 | 
					        _ = record;
 | 
				
			||||||
 | 
					        const groups = lit.next().?;
 | 
				
			||||||
 | 
					        _ = groups;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return .{ .a = 0, .b = 0 };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test "silver" {
 | 
				
			||||||
 | 
					    const input =
 | 
				
			||||||
 | 
					        \\???.### 1,1,3
 | 
				
			||||||
 | 
					        \\.??..??...?##. 1,1,3
 | 
				
			||||||
 | 
					        \\?#?#?#?#?#?#?#? 1,3,1,6
 | 
				
			||||||
 | 
					        \\????.#...#... 4,1,1
 | 
				
			||||||
 | 
					        \\????.######..#####. 1,6,5
 | 
				
			||||||
 | 
					        \\?###???????? 3,2,1
 | 
				
			||||||
 | 
					    ;
 | 
				
			||||||
 | 
					    const sln = try solve(std.testing.allocator, input);
 | 
				
			||||||
 | 
					    try std.testing.expectEqual(@as(usize, 21), sln.a);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test "gold" {
 | 
				
			||||||
 | 
					    const input =
 | 
				
			||||||
 | 
					        \\
 | 
				
			||||||
 | 
					    ;
 | 
				
			||||||
 | 
					    const sln = try solve(std.testing.allocator, input);
 | 
				
			||||||
 | 
					    try std.testing.expectEqual(@as(usize, 0), sln.b);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Reference in New Issue
	
	Block a user