diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | day_05.zig | 6 | ||||
-rw-r--r-- | day_07.zig | 129 | ||||
-rw-r--r-- | inputs/day_07 | 899 | ||||
-rw-r--r-- | main.zig | 1 |
5 files changed, 1033 insertions, 4 deletions
@@ -1,4 +1,4 @@ -ZIG_VERSION=0.11.0-dev.149+7733246d6 +ZIG_VERSION=0.11.0-dev.612+8ccb9a6ad IMAGE_NAME=zigci all: clean test fmt benchmark @@ -65,7 +65,7 @@ fn build_answer(allocator: std.mem.Allocator, crates: [][MAX_HEIGHT]u8) !Result r.appendAssumeCapacity(crates[i][len(crates[i]) - 1]); } - return .{ .string = r.toOwnedSlice() }; + return .{ .string = try r.toOwnedSlice() }; } fn parse_input(allocator: std.mem.Allocator, input: []const u8) !Data { @@ -86,7 +86,7 @@ fn parse_input(allocator: std.mem.Allocator, input: []const u8) !Data { var r = try std.ArrayList([MAX_HEIGHT]u8).initCapacity(allocator, rows); var i: usize = 0; while (i < rows) : (i += 1) r.appendAssumeCapacity(std.mem.zeroes([MAX_HEIGHT]u8)); - break :blk r.toOwnedSlice(); + break :blk try r.toOwnedSlice(); }; while (iter.next()) |line| : (floor -= 1) { @@ -116,7 +116,7 @@ fn parse_input(allocator: std.mem.Allocator, input: []const u8) !Data { command.To = try std.fmt.parseInt(u8, line_iter.next() orelse unreachable, 0) - 1; try commands.append(command); } - return .{ .Commands = commands.toOwnedSlice(), .Crates = crates }; + return .{ .Commands = try commands.toOwnedSlice(), .Crates = crates }; } fn len(row: [MAX_HEIGHT]u8) usize { diff --git a/day_07.zig b/day_07.zig new file mode 100644 index 0000000..01c71a2 --- /dev/null +++ b/day_07.zig @@ -0,0 +1,129 @@ +const std = @import("std"); +const Result = @import("util/aoc.zig").Result; + +const NodeType = union(enum) { File, Dir }; +const Node = struct { + Name: []const u8, + Childs: struct { + len: usize = 0, + items: [300]?*Node = [_]?*Node{null} ** 300, + } = .{}, + Parent: ?*Node = null, + Type: NodeType, + Size: usize = 0, + + pub fn append(self: *Node, node: *Node) void { + self.Childs.items[self.Childs.len] = node; + self.Childs.len += 1; + } + + fn cd(self: *Node, to: []const u8) *Node { + if (to.len == 1 and to[0] == '/') { + if (self.Parent == null) return self; + return self.Parent.?.cd("/"); + } + + if (std.mem.eql(u8, "..", to)) { + return self.Parent.?; + } + + for (self.Childs.items[0..self.Childs.len]) |child| { + if (std.mem.eql(u8, child.?.Name, to)) return child.?; + } + + unreachable; + } + + fn size(self: Node) usize { + if (self.Type == .File) return self.Size; + var s: usize = 0; + for (self.Childs.items[0..self.Childs.len]) |child| s += child.?.size(); + return s; + } +}; + +fn compute_puzzle_1(node: Node) usize { + var size: usize = 0; + for (node.Childs.items[0..node.Childs.len]) |child| { + if (child.?.Type != NodeType.Dir) continue; + if (child.?.size() <= 100000) size += child.?.size(); + size += compute_puzzle_1(child.?.*); + } + return size; +} + +fn compute_puzzle_2(node: Node, min: usize, target: usize) usize { + var new_min = min; + for (node.Childs.items[0..node.Childs.len]) |child| { + if (child.?.Type != NodeType.Dir) continue; + const child_size = child.?.size(); + if (child_size < new_min and child_size >= target) new_min = child_size; + new_min = compute_puzzle_2(child.?.*, new_min, target); + } + return new_min; +} + +fn build_tree(allocator: std.mem.Allocator, root: *Node, input: []const u8) !void { + var iter = std.mem.split(u8, input, "\n"); + + var current_root = &root; + + while (iter.next()) |line| { + if (line[0] == '$') { + if (std.mem.eql(u8, line[2..4], "cd")) current_root = ¤t_root.*.cd(line[5..]); + continue; + } + + var node = try allocator.create(Node); + node.* = .{ + .Name = line[std.mem.indexOf(u8, line, " ").? + 1 ..], + .Parent = current_root.*, + .Type = blk: { + if (std.mem.eql(u8, line[0..3], "dir")) break :blk NodeType.Dir; + break :blk NodeType.File; + }, + .Size = blk: { + break :blk std.fmt.parseInt( + usize, + line[0..std.mem.indexOf(u8, line, " ").?], + 0, + ) catch 0; + }, + }; + current_root.*.append(node); + } +} + +pub fn puzzle_1(allocator: std.mem.Allocator, input: []const u8) Result { + var arena = std.heap.ArenaAllocator.init(allocator); + defer arena.deinit(); + + var node = Node{ + .Name = "/", + .Type = .Dir, + }; + + build_tree(arena.allocator(), &node, input) catch unreachable; + + return .{ .int = @intCast(i32, compute_puzzle_1(node)) }; +} + +pub fn puzzle_2(allocator: std.mem.Allocator, input: []const u8) Result { + var arena = std.heap.ArenaAllocator.init(allocator); + defer arena.deinit(); + + var node = Node{ + .Name = "/", + .Type = .Dir, + }; + + build_tree(arena.allocator(), &node, input) catch unreachable; + + const target: usize = 30000000 - (70000000 - node.size()); + + return .{ .int = @intCast(i32, compute_puzzle_2( + node, + node.size(), + target, + )) }; +} diff --git a/inputs/day_07 b/inputs/day_07 new file mode 100644 index 0000000..f1d8ab1 --- /dev/null +++ b/inputs/day_07 @@ -0,0 +1,899 @@ +$ cd / +$ ls +dir ctd +80649 mwcj.pmh +212527 nbb.ztq +dir pgqmwn +152170 scr.smr +17637 snqcgbs.nhv +dir tmw +dir vtm +$ cd ctd +$ ls +dir bblsqnwl +dir gzcjrs +dir pgqmwn +dir qzgjp +dir shmvmqv +$ cd bblsqnwl +$ ls +dir rng +$ cd rng +$ ls +dir jncpmzcs +dir pttvmghm +293353 qcjbfggw.tjj +dir sgm +$ cd jncpmzcs +$ ls +36126 tstwmrbr.bmr +$ cd .. +$ cd pttvmghm +$ ls +38802 ctttjn.nzr +$ cd .. +$ cd sgm +$ ls +dir djcbdbgr +dir gqrr +$ cd djcbdbgr +$ ls +254050 nbb.ztq +$ cd .. +$ cd gqrr +$ ls +168685 jgsqvf.tql +302004 shmvmqv +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd gzcjrs +$ ls +319972 bwnjnmmh.wwd +25495 fzthlhcp.nst +291270 ghjc.nvf +244664 jrlfb.fvz +$ cd .. +$ cd pgqmwn +$ ls +dir zpvthlgp +$ cd zpvthlgp +$ ls +128092 dqvcqs.zpb +140511 nvqsqtjw +$ cd .. +$ cd .. +$ cd qzgjp +$ ls +23062 jgsqvf.tql +254685 nbb.ztq +dir pgqmwn +320683 shmvmqv +105368 shmvmqv.hmg +60805 snqcgbs +$ cd pgqmwn +$ ls +47287 gffvwmr.pbd +$ cd .. +$ cd .. +$ cd shmvmqv +$ ls +80751 crtwwqb +dir dbfm +dir dhhghph +dir pgqmwn +195177 qnm +dir qpbn +dir rwmsqdw +dir shmvmqv +16133 shmvmqv.vwq +187938 tmw +$ cd dbfm +$ ls +dir gbpnjrt +265813 glzz.mjv +108147 nbb.ztq +229253 nvqsqtjw +85743 pgqmwn +261375 qnm +$ cd gbpnjrt +$ ls +179812 mtp.lnf +234550 shmvmqv.qvq +$ cd .. +$ cd .. +$ cd dhhghph +$ ls +dir ghmpb +70514 zqv.ssn +$ cd ghmpb +$ ls +132693 shmvmqv.csb +$ cd .. +$ cd .. +$ cd pgqmwn +$ ls +dir hcbtbr +200292 pgqmwn +67530 sgm +15442 snqcgbs +$ cd hcbtbr +$ ls +249252 dqvcqs.zpb +$ cd .. +$ cd .. +$ cd qpbn +$ ls +dir pmbw +261142 qnm +dir rsfh +239788 sgm +dir wfwl +$ cd pmbw +$ ls +dir gwwdtzp +dir jszzc +32725 rnggjs.cbv +dir sldv +dir tptrlz +$ cd gwwdtzp +$ ls +dir dlvbdn +63066 dslb.mrp +dir shmvmqv +dir tzssf +$ cd dlvbdn +$ ls +190731 nqv.csc +$ cd .. +$ cd shmvmqv +$ ls +223667 nbb.ztq +$ cd .. +$ cd tzssf +$ ls +27296 rlgswwzq.dgj +dir tfdq +206881 wrdqg.pfj +$ cd tfdq +$ ls +26512 wsgh +$ cd .. +$ cd .. +$ cd .. +$ cd jszzc +$ ls +218701 qpz.hdm +$ cd .. +$ cd sldv +$ ls +dir hsbzqtml +3895 jgsqvf.tql +181815 nbb.ztq +294048 shmvmqv.fcm +dir snqcgbs +dir tmw +203484 zfpjq.pvn +dir zlpwdp +$ cd hsbzqtml +$ ls +dir shmvmqv +$ cd shmvmqv +$ ls +103536 nbb.ztq +32635 wmc +$ cd .. +$ cd .. +$ cd snqcgbs +$ ls +95112 dch +$ cd .. +$ cd tmw +$ ls +dir dplm +275451 hsr.zhn +9766 qnm +177383 ztbmqjqb.hwj +$ cd dplm +$ ls +277671 dqvcqs.zpb +$ cd .. +$ cd .. +$ cd zlpwdp +$ ls +315030 snqcgbs.mlz +$ cd .. +$ cd .. +$ cd tptrlz +$ ls +dir jfflz +154685 qbbpstff.fcs +dir sjjgljg +dir zsssqcsb +$ cd jfflz +$ ls +1330 fvldwzn.dbb +227153 nbb.ztq +$ cd .. +$ cd sjjgljg +$ ls +295745 frjnfsgt.fmq +105131 jtbltpv.vhm +174279 pgqmwn +104317 sgm +$ cd .. +$ cd zsssqcsb +$ ls +246361 bnzsv.dqf +dir ggcvqf +dir htqpwzw +249833 jgsqvf.tql +dir lbtjth +dir lcfwb +306768 mmd.gjw +121112 pgqmwn +dir sgm +dir shmvmqv +dir snqcgbs +55055 tmw.rqm +$ cd ggcvqf +$ ls +46573 fcwznd +$ cd .. +$ cd htqpwzw +$ ls +dir bmzvdzsv +193713 fpp.vwd +39898 mfjcnl.szn +65370 msljctr +10685 ppgzbc.trg +94843 shmvmqv.hqn +dir thfdg +$ cd bmzvdzsv +$ ls +74898 pgqmwn.wwh +$ cd .. +$ cd thfdg +$ ls +dir cpsgcll +$ cd cpsgcll +$ ls +244683 gdfw +17203 tmw +$ cd .. +$ cd .. +$ cd .. +$ cd lbtjth +$ ls +dir snqcgbs +$ cd snqcgbs +$ ls +122394 grhbhpw.fsl +55324 jgsqvf.tql +$ cd .. +$ cd .. +$ cd lcfwb +$ ls +138053 nvqsqtjw +$ cd .. +$ cd sgm +$ ls +314313 dqvcqs.zpb +146274 fftqvs.ltt +225372 jtq.rzq +85697 rctzgq.rsr +dir sgm +262221 tqpng +$ cd sgm +$ ls +dir cmvvd +277366 mhs.tpn +77975 nbb.ztq +160966 qrwbvbd.ghf +55949 snqcgbs.qzc +$ cd cmvvd +$ ls +28054 lfsvfsl +165671 tmw.zwh +$ cd .. +$ cd .. +$ cd .. +$ cd shmvmqv +$ ls +51884 bsbwrjnz.dmt +231236 jfmsg.mts +dir qpb +256063 zhmw +65512 zrnhr +$ cd qpb +$ ls +228289 dqvcqs.zpb +$ cd .. +$ cd .. +$ cd snqcgbs +$ ls +dir mnwgf +$ cd mnwgf +$ ls +178834 qgnwvlfd.cps +255140 sls.mnw +9546 tvhbm +281615 vntrb +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd rsfh +$ ls +310413 snqcgbs +$ cd .. +$ cd wfwl +$ ls +dir fmvg +129025 jgsqvf.tql +$ cd fmvg +$ ls +276100 nvqsqtjw +$ cd .. +$ cd .. +$ cd .. +$ cd rwmsqdw +$ ls +46554 qzdmgl +55785 shmvmqv +127982 tfffrg.sbz +$ cd .. +$ cd shmvmqv +$ ls +dir ntstz +dir vprlz +$ cd ntstz +$ ls +304801 nvqsqtjw +28969 wzfb.fjv +$ cd .. +$ cd vprlz +$ ls +dir cmmtnt +dir shmvmqv +$ cd cmmtnt +$ ls +270129 shmvmqv +$ cd .. +$ cd shmvmqv +$ ls +dir sgm +$ cd sgm +$ ls +287889 hghh.mwt +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd pgqmwn +$ ls +85368 qnm +$ cd .. +$ cd tmw +$ ls +dir fnpjwg +dir gdt +dir ggs +dir llh +69470 nvqsqtjw +dir sgm +$ cd fnpjwg +$ ls +161820 dndq.tfl +dir dwmcs +205155 tdccsw.qlq +165352 vvmnpj +$ cd dwmcs +$ ls +121466 dqvcqs.zpb +274171 qbbqmf.ltf +$ cd .. +$ cd .. +$ cd gdt +$ ls +dir cnvtrw +dir gdcvdsv +dir hcn +dir hsmhn +dir jnhqz +78446 pgqmwn.mwr +dir qwfl +dir snqcgbs +$ cd cnvtrw +$ ls +dir hfvzm +$ cd hfvzm +$ ls +305880 tmw.lvw +$ cd .. +$ cd .. +$ cd gdcvdsv +$ ls +69690 jhscd +$ cd .. +$ cd hcn +$ ls +166775 dqvcqs.zpb +294325 nvqsqtjw +$ cd .. +$ cd hsmhn +$ ls +172897 lrjf.dnw +dir npgr +225227 pbcmjg.rhf +234530 pgqmwn.cqb +dir qlz +dir snqcgbs +52808 tnntq.wjt +$ cd npgr +$ ls +141280 qnm +64422 rwv +$ cd .. +$ cd qlz +$ ls +258070 nbb.ztq +$ cd .. +$ cd snqcgbs +$ ls +3723 frcr.jmn +109486 sgm.nsw +114054 shmvmqv.frr +142024 snqcgbs +$ cd .. +$ cd .. +$ cd jnhqz +$ ls +dir gpztwnqm +dir nwpqbf +dir sgm +dir tmw +$ cd gpztwnqm +$ ls +303103 bjbpj +281422 hgp +284044 jgsqvf.tql +dir qzts +133248 sgm +$ cd qzts +$ ls +2428 dqvcqs.zpb +283206 hzs.smg +dir lmlw +$ cd lmlw +$ ls +dir sjrfmpc +$ cd sjrfmpc +$ ls +164708 nbb.ztq +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd nwpqbf +$ ls +192033 dqvcqs.zpb +298220 jqd.bfh +dir mhtsg +100921 snqcgbs +dir zbtb +$ cd mhtsg +$ ls +140813 cgcn.rjn +$ cd .. +$ cd zbtb +$ ls +201213 gjglrmf.dzv +dir grbl +81636 pgqmwn.zfm +265992 pwhbflzn.sch +dir twjrlzpj +$ cd grbl +$ ls +82894 jgsqvf.tql +$ cd .. +$ cd twjrlzpj +$ ls +304952 cwhtqv.zvh +$ cd .. +$ cd .. +$ cd .. +$ cd sgm +$ ls +56329 ftfvfpz.srv +3875 nbb.ztq +4766 shmvmqv.fdt +247272 vbw.hsv +$ cd .. +$ cd tmw +$ ls +dir ddbvd +$ cd ddbvd +$ ls +83200 tnrwdc.dzm +$ cd .. +$ cd .. +$ cd .. +$ cd qwfl +$ ls +dir bcfnz +23440 nvqsqtjw +dir pwb +206984 shmvmqv.fjb +35453 snqcgbs +297136 snqcgbs.fnr +dir tmw +181689 wcbdwwq +$ cd bcfnz +$ ls +dir fnrclwn +dir fslh +258656 gtbhdpt.pth +238261 psbsmvpf.lmt +dir sgm +$ cd fnrclwn +$ ls +30297 crhjfzlp.gtb +297557 gvvnbmt.spr +189301 nvqsqtjw +45159 sndmlvw.lsb +259295 sqd +$ cd .. +$ cd fslh +$ ls +246662 bpvcj.hnf +$ cd .. +$ cd sgm +$ ls +dir jpr +dir tmw +dir wscvtrd +$ cd jpr +$ ls +49005 dqvcqs.zpb +$ cd .. +$ cd tmw +$ ls +201387 sgm +$ cd .. +$ cd wscvtrd +$ ls +77175 blczlqf.pnv +207393 shmvmqv.qbs +$ cd .. +$ cd .. +$ cd .. +$ cd pwb +$ ls +89451 bqcmzzf +207548 gfwgnft.php +dir gsn +dir jtvpnvz +144792 nbb.ztq +dir nzzqj +214209 pgqmwn.sjv +236845 pzvjqqvz +dir sgm +dir snqcgbs +dir vfvttj +$ cd gsn +$ ls +93490 snqcgbs.fbv +$ cd .. +$ cd jtvpnvz +$ ls +dir fdnvff +208857 gpvwzhd +229559 rnc +225519 snqcgbs +162969 tmw +$ cd fdnvff +$ ls +286944 dztqqtf.nmp +dir rwc +181737 snqcgbs +$ cd rwc +$ ls +115290 nbb.ztq +$ cd .. +$ cd .. +$ cd .. +$ cd nzzqj +$ ls +154210 jgsqvf.tql +dir sgm +182438 snqcgbs.wpg +dir zpvghr +$ cd sgm +$ ls +123163 rjgc.ccm +dir rqn +291622 tflv.pqc +$ cd rqn +$ ls +220655 rtbrwmjn.clj +$ cd .. +$ cd .. +$ cd zpvghr +$ ls +288859 dqvcqs.zpb +218036 hfdcrjp +$ cd .. +$ cd .. +$ cd sgm +$ ls +107183 sgm.nsf +225832 sjwn +dir tgf +$ cd tgf +$ ls +258766 nvqsqtjw +$ cd .. +$ cd .. +$ cd snqcgbs +$ ls +56144 whjpg.ffz +$ cd .. +$ cd vfvttj +$ ls +dir ptmggmsl +$ cd ptmggmsl +$ ls +dir psd +dir wdzptvjc +$ cd psd +$ ls +121637 dqvcqs.zpb +$ cd .. +$ cd wdzptvjc +$ ls +dir shmvmqv +$ cd shmvmqv +$ ls +23754 dqmrj.fhh +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd tmw +$ ls +17390 hqz +dir jnsb +31072 nvqsqtjw +dir tmw +144511 vvwjcqr.rtz +$ cd jnsb +$ ls +265907 snqcgbs.swh +$ cd .. +$ cd tmw +$ ls +dir gfncpvw +$ cd gfncpvw +$ ls +dir ctvwgtlh +$ cd ctvwgtlh +$ ls +29825 ccjvs.qqq +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd .. +$ cd snqcgbs +$ ls +230355 ccl.ddg +dir csfdmhmb +dir drpgbvzf +313060 hhcpw.nbs +dir pfpn +dir ptwnpdnc +273250 qfsnmbm +dir shmvmqv +244767 tmw.zjg +$ cd csfdmhmb +$ ls +50690 nbb.ztq +282078 vzrw +$ cd .. +$ cd drpgbvzf +$ ls +dir bhwvqf +803 dqvcqs.zpb +49859 hhw.gpd +180202 nbb.ztq +dir nfh +64808 pgqmwn +276746 qnm +dir shmvmqv +dir tmw +$ cd bhwvqf +$ ls +76667 qcgpdwm.sbs +$ cd .. +$ cd nfh +$ ls +23774 jgsqvf.tql +34652 pnp.lvp +120264 zvp +$ cd .. +$ cd shmvmqv +$ ls +47748 cswm.dsr +dir pgqmwn +$ cd pgqmwn +$ ls +109587 qnm +$ cd .. +$ cd .. +$ cd tmw +$ ls +105578 snqcgbs +$ cd .. +$ cd .. +$ cd pfpn +$ ls +194628 wgc +$ cd .. +$ cd ptwnpdnc +$ ls +142456 rvwtfvr.tsc +$ cd .. +$ cd shmvmqv +$ ls +118642 hgqlrt.btl +$ cd .. +$ cd .. +$ cd .. +$ cd ggs +$ ls +231223 hmtp.djc +$ cd .. +$ cd llh +$ ls +dir hbq +dir svt +$ cd hbq +$ ls +157243 fhpsb +36981 rdbqnbfr.cwz +282257 tmw.wwv +$ cd .. +$ cd svt +$ ls +161395 sgm.hdl +$ cd .. +$ cd .. +$ cd sgm +$ ls +247276 fss +dir pgqmwn +68084 pgqmwn.vfl +28475 sgm.swb +dir shmvmqv +223438 snqcgbs.bng +$ cd pgqmwn +$ ls +134640 dqvcqs.zpb +dir nrdd +25431 nvqsqtjw +149751 qhzqw +dir vfmcjhwz +dir zlfhr +$ cd nrdd +$ ls +dir pgqmwn +$ cd pgqmwn +$ ls +57090 nfbd +$ cd .. +$ cd .. +$ cd vfmcjhwz +$ ls +24256 fdzfwfh.rcv +$ cd .. +$ cd zlfhr +$ ls +20504 fgbpndj.wgm +181769 qnm +$ cd .. +$ cd .. +$ cd shmvmqv +$ ls +208988 nbb.ztq +$ cd .. +$ cd .. +$ cd .. +$ cd vtm +$ ls +dir lqvjm +dir msmtcnsj +dir qmtgdn +dir tmw +$ cd lqvjm +$ ls +239772 hnj.zqf +$ cd .. +$ cd msmtcnsj +$ ls +48711 clfl.fsl +245929 ddh.gdq +dir fvlb +241040 nvqsqtjw +dir shmvmqv +305567 vdzzqpz.jfs +$ cd fvlb +$ ls +25669 ddz.tbc +$ cd .. +$ cd shmvmqv +$ ls +283905 nvqsqtjw +$ cd .. +$ cd .. +$ cd qmtgdn +$ ls +246479 pgqmwn +35386 rtf.cdp +217551 sgm.mrz +$ cd .. +$ cd tmw +$ ls +dir qfggmdvd +dir tlv +dir tmw +$ cd qfggmdvd +$ ls +288091 djwfq.wzc +37383 pwnzdj +214119 shmvmqv.wlg +29747 tmw.ntw +146556 zgbd +$ cd .. +$ cd tlv +$ ls +142924 grj.qhw +210672 qhmn +209554 zbcqcb.mhn +141215 zjmrgw.wlc +$ cd .. +$ cd tmw +$ ls +dir fwsgn +dir tmw +$ cd fwsgn +$ ls +dir qbbhrst +306142 sgm +$ cd qbbhrst +$ ls +dir sgm +dir srbn +$ cd sgm +$ ls +80992 bbvqrcf.chp +$ cd .. +$ cd srbn +$ ls +161382 nvqsqtjw +$ cd .. +$ cd .. +$ cd .. +$ cd tmw +$ ls +219508 dqvcqs.zpb +dir tmw +134434 wbvvgqwn.bmh +$ cd tmw +$ ls +209116 pgqmwn @@ -12,6 +12,7 @@ const t = [_]struct { .{ .day = @import("day_04.zig"), .input = @embedFile("inputs/day_04"), .expect = &[_]Result{ .{ .int = 483 }, .{ .int = 874 } } }, .{ .day = @import("day_05.zig"), .input = @embedFile("inputs/day_05"), .expect = &[_]Result{ .{ .string = "SHMSDGZVC" }, .{ .string = "VRZGHDFBQ" } } }, .{ .day = @import("day_06.zig"), .input = @embedFile("inputs/day_06"), .expect = &[_]Result{ .{ .int = 1896 }, .{ .int = 3452 } } }, + .{ .day = @import("day_07.zig"), .input = @embedFile("inputs/day_07"), .expect = &[_]Result{ .{ .int = 1427048 }, .{ .int = 2940614 } } }, }; pub fn main() !void { |