diff options
| author | Orfeas <38209077+0xfea5@users.noreply.github.com> | 2023-12-15 02:13:13 +0200 |
|---|---|---|
| committer | Orfeas <38209077+0xfea5@users.noreply.github.com> | 2025-10-28 23:20:45 +0200 |
| commit | 88505114b052c220454cb6211abd8dcff2ce5323 (patch) | |
| tree | a92e2b4a1b2d923ce2bacbe3c2093fb695c170fb /day13 | |
| parent | day13 (diff) | |
| download | aoc23-88505114b052c220454cb6211abd8dcff2ce5323.tar.gz aoc23-88505114b052c220454cb6211abd8dcff2ce5323.zip | |
day14
Diffstat (limited to 'day13')
| -rw-r--r-- | day13/solution.zig | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/day13/solution.zig b/day13/solution.zig index e3139fc..3b83d0e 100644 --- a/day13/solution.zig +++ b/day13/solution.zig | |||
| @@ -23,6 +23,22 @@ fn cnt_diff(lhs: []const u8, rhs: []const u8) i64 { | |||
| 23 | return cnt; | 23 | return cnt; |
| 24 | } | 24 | } |
| 25 | 25 | ||
| 26 | fn transpose(map: Map) Map { | ||
| 27 | var transposed = allocator.alloc([]u8, map[0].len) catch unreachable; | ||
| 28 | |||
| 29 | for (transposed) |*trow| { | ||
| 30 | trow.* = allocator.alloc(u8, map.len) catch unreachable; | ||
| 31 | } | ||
| 32 | |||
| 33 | for (map, 0..) |row, i| { | ||
| 34 | for (row, 0..) |c, j| { | ||
| 35 | transposed[j][i] = c; | ||
| 36 | } | ||
| 37 | } | ||
| 38 | |||
| 39 | return transposed; | ||
| 40 | } | ||
| 41 | |||
| 26 | fn check_eql(map: Map, i_: usize, j_: usize, tolerance_: i64) bool { | 42 | fn check_eql(map: Map, i_: usize, j_: usize, tolerance_: i64) bool { |
| 27 | var i = i_; | 43 | var i = i_; |
| 28 | var j = j_; | 44 | var j = j_; |
| @@ -41,22 +57,6 @@ fn check_eql(map: Map, i_: usize, j_: usize, tolerance_: i64) bool { | |||
| 41 | return tolerance == 0; | 57 | return tolerance == 0; |
| 42 | } | 58 | } |
| 43 | 59 | ||
| 44 | fn transpose(map: Map) Map { | ||
| 45 | var transposed = allocator.alloc([]u8, map[0].len) catch unreachable; | ||
| 46 | |||
| 47 | for (transposed) |*trow| { | ||
| 48 | trow.* = allocator.alloc(u8, map.len) catch unreachable; | ||
| 49 | } | ||
| 50 | |||
| 51 | for (map, 0..) |row, i| { | ||
| 52 | for (row, 0..) |c, j| { | ||
| 53 | transposed[j][i] = c; | ||
| 54 | } | ||
| 55 | } | ||
| 56 | |||
| 57 | return transposed; | ||
| 58 | } | ||
| 59 | |||
| 60 | fn evaluate(map: Map, tolerance: i64) u64 { | 60 | fn evaluate(map: Map, tolerance: i64) u64 { |
| 61 | const h = map.len; | 61 | const h = map.len; |
| 62 | const w = map[0].len; | 62 | const w = map[0].len; |
