Day 13 solution
Honestly I think I have an error somewhere in the part 2 logic because my final output characters weren't exactly correct, but they were close enough that my first guess for each letter was right. So I may revisit this to find and fix the logic bug, but apparently it's Close Enough™ to be done for the night.
This commit is contained in:
@ -54,6 +54,9 @@
|
||||
<None Update="inputs\12.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
<None Update="inputs\13.txt">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</None>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
910
inputs/13.txt
Normal file
910
inputs/13.txt
Normal file
@ -0,0 +1,910 @@
|
||||
688,126
|
||||
1237,406
|
||||
1228,327
|
||||
827,189
|
||||
132,457
|
||||
641,120
|
||||
1255,579
|
||||
1310,187
|
||||
371,166
|
||||
576,332
|
||||
1207,835
|
||||
746,595
|
||||
468,5
|
||||
428,282
|
||||
540,446
|
||||
1253,393
|
||||
788,701
|
||||
1034,387
|
||||
509,526
|
||||
209,360
|
||||
676,245
|
||||
781,107
|
||||
515,301
|
||||
1235,194
|
||||
83,304
|
||||
177,568
|
||||
159,570
|
||||
141,583
|
||||
599,763
|
||||
519,263
|
||||
261,260
|
||||
18,281
|
||||
870,688
|
||||
1190,598
|
||||
1287,169
|
||||
616,351
|
||||
89,488
|
||||
23,725
|
||||
338,204
|
||||
641,792
|
||||
693,577
|
||||
1278,768
|
||||
739,304
|
||||
749,565
|
||||
1096,742
|
||||
504,621
|
||||
900,103
|
||||
627,11
|
||||
1272,543
|
||||
281,491
|
||||
1185,129
|
||||
1293,526
|
||||
917,701
|
||||
781,395
|
||||
1005,264
|
||||
843,67
|
||||
930,812
|
||||
967,746
|
||||
1160,845
|
||||
1057,313
|
||||
164,92
|
||||
1089,687
|
||||
1267,504
|
||||
113,675
|
||||
676,469
|
||||
1042,82
|
||||
1053,777
|
||||
877,334
|
||||
641,270
|
||||
731,855
|
||||
1165,526
|
||||
638,250
|
||||
306,544
|
||||
1034,294
|
||||
1297,624
|
||||
509,78
|
||||
549,127
|
||||
1001,647
|
||||
624,499
|
||||
478,509
|
||||
261,232
|
||||
801,526
|
||||
818,810
|
||||
213,339
|
||||
1064,364
|
||||
972,690
|
||||
213,555
|
||||
117,388
|
||||
1146,354
|
||||
837,42
|
||||
667,672
|
||||
223,59
|
||||
50,507
|
||||
1027,504
|
||||
22,397
|
||||
3,613
|
||||
554,383
|
||||
649,31
|
||||
806,621
|
||||
176,201
|
||||
619,88
|
||||
847,183
|
||||
768,542
|
||||
1143,140
|
||||
971,110
|
||||
574,747
|
||||
639,120
|
||||
1294,196
|
||||
542,94
|
||||
1011,39
|
||||
89,504
|
||||
875,803
|
||||
271,37
|
||||
729,805
|
||||
253,357
|
||||
492,806
|
||||
622,126
|
||||
748,333
|
||||
693,465
|
||||
780,127
|
||||
1057,840
|
||||
1086,826
|
||||
1200,826
|
||||
813,158
|
||||
473,42
|
||||
277,600
|
||||
1022,95
|
||||
1064,530
|
||||
37,36
|
||||
823,1
|
||||
1057,651
|
||||
962,714
|
||||
60,816
|
||||
710,794
|
||||
82,810
|
||||
1277,267
|
||||
843,301
|
||||
872,866
|
||||
482,322
|
||||
991,362
|
||||
428,164
|
||||
127,696
|
||||
693,410
|
||||
1139,868
|
||||
832,873
|
||||
32,126
|
||||
872,516
|
||||
21,182
|
||||
875,91
|
||||
1310,709
|
||||
1290,201
|
||||
1283,683
|
||||
661,863
|
||||
73,306
|
||||
194,457
|
||||
1094,187
|
||||
144,431
|
||||
1262,339
|
||||
305,525
|
||||
507,735
|
||||
467,281
|
||||
525,627
|
||||
1250,78
|
||||
1049,773
|
||||
900,819
|
||||
582,707
|
||||
627,211
|
||||
124,637
|
||||
62,383
|
||||
473,78
|
||||
975,691
|
||||
16,644
|
||||
1245,466
|
||||
1181,757
|
||||
654,485
|
||||
594,368
|
||||
256,113
|
||||
529,787
|
||||
637,78
|
||||
1141,626
|
||||
701,670
|
||||
765,347
|
||||
397,329
|
||||
731,263
|
||||
668,721
|
||||
291,179
|
||||
1217,280
|
||||
192,586
|
||||
552,154
|
||||
785,179
|
||||
709,211
|
||||
893,628
|
||||
1273,484
|
||||
89,292
|
||||
571,304
|
||||
437,883
|
||||
1197,614
|
||||
667,224
|
||||
348,628
|
||||
1005,600
|
||||
410,551
|
||||
401,406
|
||||
567,417
|
||||
1006,206
|
||||
850,247
|
||||
1004,96
|
||||
674,95
|
||||
393,701
|
||||
1007,831
|
||||
820,418
|
||||
888,588
|
||||
624,652
|
||||
393,774
|
||||
257,117
|
||||
469,189
|
||||
296,567
|
||||
373,222
|
||||
276,507
|
||||
301,332
|
||||
440,294
|
||||
435,53
|
||||
1092,772
|
||||
1139,637
|
||||
595,350
|
||||
1042,530
|
||||
435,841
|
||||
75,855
|
||||
492,536
|
||||
93,728
|
||||
927,73
|
||||
497,46
|
||||
673,526
|
||||
445,808
|
||||
557,652
|
||||
401,805
|
||||
818,806
|
||||
412,114
|
||||
1073,280
|
||||
323,793
|
||||
1293,647
|
||||
487,1
|
||||
843,145
|
||||
112,94
|
||||
365,765
|
||||
355,487
|
||||
1026,369
|
||||
1193,782
|
||||
694,95
|
||||
463,183
|
||||
820,707
|
||||
57,725
|
||||
1123,575
|
||||
306,798
|
||||
1203,288
|
||||
7,868
|
||||
15,465
|
||||
793,480
|
||||
925,277
|
||||
811,196
|
||||
646,546
|
||||
641,326
|
||||
88,42
|
||||
349,294
|
||||
994,268
|
||||
841,705
|
||||
596,252
|
||||
638,644
|
||||
214,742
|
||||
435,526
|
||||
1238,707
|
||||
561,166
|
||||
577,93
|
||||
517,190
|
||||
639,317
|
||||
92,221
|
||||
226,506
|
||||
541,488
|
||||
517,414
|
||||
1019,715
|
||||
909,243
|
||||
37,410
|
||||
601,211
|
||||
232,588
|
||||
617,186
|
||||
37,484
|
||||
1248,511
|
||||
139,165
|
||||
736,747
|
||||
216,203
|
||||
417,628
|
||||
961,712
|
||||
659,812
|
||||
743,477
|
||||
339,784
|
||||
316,626
|
||||
800,7
|
||||
172,322
|
||||
893,182
|
||||
636,281
|
||||
164,585
|
||||
547,674
|
||||
542,876
|
||||
1197,70
|
||||
525,267
|
||||
15,36
|
||||
1240,177
|
||||
1005,425
|
||||
1006,21
|
||||
1245,121
|
||||
933,600
|
||||
1054,893
|
||||
600,100
|
||||
949,86
|
||||
373,403
|
||||
1057,56
|
||||
1054,1
|
||||
694,799
|
||||
550,82
|
||||
1057,243
|
||||
89,824
|
||||
435,501
|
||||
1021,577
|
||||
1185,107
|
||||
483,332
|
||||
955,683
|
||||
1091,837
|
||||
1042,364
|
||||
1071,642
|
||||
1273,260
|
||||
167,140
|
||||
619,536
|
||||
113,728
|
||||
857,877
|
||||
437,235
|
||||
129,137
|
||||
1087,96
|
||||
952,253
|
||||
659,109
|
||||
910,595
|
||||
176,693
|
||||
952,499
|
||||
721,502
|
||||
164,354
|
||||
529,339
|
||||
417,182
|
||||
781,787
|
||||
170,826
|
||||
857,241
|
||||
775,372
|
||||
453,843
|
||||
962,404
|
||||
316,268
|
||||
744,404
|
||||
582,35
|
||||
1160,84
|
||||
765,498
|
||||
589,196
|
||||
299,519
|
||||
72,259
|
||||
164,866
|
||||
761,127
|
||||
125,765
|
||||
1134,693
|
||||
795,593
|
||||
1015,488
|
||||
216,187
|
||||
299,855
|
||||
52,812
|
||||
1002,431
|
||||
721,193
|
||||
914,252
|
||||
304,273
|
||||
910,707
|
||||
585,728
|
||||
510,711
|
||||
917,466
|
||||
438,68
|
||||
43,484
|
||||
1041,603
|
||||
397,614
|
||||
542,352
|
||||
400,747
|
||||
537,11
|
||||
1261,518
|
||||
313,624
|
||||
495,371
|
||||
1116,247
|
||||
21,369
|
||||
803,159
|
||||
566,852
|
||||
303,383
|
||||
748,781
|
||||
656,37
|
||||
254,299
|
||||
176,497
|
||||
1303,691
|
||||
0,485
|
||||
1241,504
|
||||
1163,735
|
||||
1064,147
|
||||
182,439
|
||||
490,707
|
||||
214,94
|
||||
1129,42
|
||||
293,715
|
||||
107,9
|
||||
542,542
|
||||
284,369
|
||||
1235,39
|
||||
991,469
|
||||
1200,467
|
||||
632,397
|
||||
1014,701
|
||||
1130,306
|
||||
1015,406
|
||||
75,197
|
||||
927,427
|
||||
1096,800
|
||||
1241,838
|
||||
1066,810
|
||||
765,435
|
||||
700,686
|
||||
401,651
|
||||
1300,647
|
||||
815,526
|
||||
838,767
|
||||
23,189
|
||||
708,203
|
||||
1034,632
|
||||
150,761
|
||||
460,247
|
||||
1029,491
|
||||
1193,800
|
||||
633,712
|
||||
1134,201
|
||||
870,94
|
||||
467,491
|
||||
401,54
|
||||
1056,819
|
||||
470,798
|
||||
1134,497
|
||||
837,852
|
||||
602,203
|
||||
1190,296
|
||||
346,57
|
||||
1203,53
|
||||
1143,754
|
||||
110,68
|
||||
890,389
|
||||
13,270
|
||||
781,339
|
||||
991,82
|
||||
1017,585
|
||||
813,44
|
||||
269,277
|
||||
393,466
|
||||
383,427
|
||||
975,469
|
||||
1007,383
|
||||
955,375
|
||||
467,301
|
||||
1148,806
|
||||
490,418
|
||||
1091,78
|
||||
505,120
|
||||
1287,705
|
||||
331,225
|
||||
848,196
|
||||
346,407
|
||||
641,774
|
||||
356,798
|
||||
27,211
|
||||
785,627
|
||||
343,792
|
||||
599,660
|
||||
1109,577
|
||||
664,546
|
||||
125,129
|
||||
102,238
|
||||
519,631
|
||||
504,49
|
||||
344,420
|
||||
164,802
|
||||
676,649
|
||||
372,191
|
||||
525,403
|
||||
549,739
|
||||
1203,368
|
||||
1257,659
|
||||
589,253
|
||||
813,119
|
||||
271,256
|
||||
842,5
|
||||
229,204
|
||||
579,476
|
||||
264,831
|
||||
987,549
|
||||
547,501
|
||||
22,497
|
||||
785,851
|
||||
1001,32
|
||||
574,299
|
||||
1053,329
|
||||
760,82
|
||||
885,569
|
||||
728,299
|
||||
171,189
|
||||
892,329
|
||||
939,614
|
||||
566,42
|
||||
385,277
|
||||
1039,256
|
||||
355,519
|
||||
1091,501
|
||||
7,245
|
||||
879,103
|
||||
932,632
|
||||
242,114
|
||||
639,568
|
||||
562,673
|
||||
763,448
|
||||
1019,267
|
||||
537,500
|
||||
1033,658
|
||||
141,311
|
||||
1273,36
|
||||
8,546
|
||||
1163,36
|
||||
1193,836
|
||||
124,767
|
||||
381,683
|
||||
431,103
|
||||
1186,637
|
||||
823,337
|
||||
647,355
|
||||
1303,245
|
||||
167,1
|
||||
291,582
|
||||
1227,304
|
||||
636,799
|
||||
1201,396
|
||||
490,810
|
||||
828,322
|
||||
254,819
|
||||
1037,737
|
||||
633,861
|
||||
467,831
|
||||
129,267
|
||||
721,701
|
||||
1057,89
|
||||
565,390
|
||||
89,614
|
||||
738,567
|
||||
858,575
|
||||
68,866
|
||||
1125,637
|
||||
1143,893
|
||||
1151,324
|
||||
1197,675
|
||||
729,502
|
||||
418,565
|
||||
617,484
|
||||
75,194
|
||||
1129,852
|
||||
900,119
|
||||
1014,567
|
||||
436,122
|
||||
1171,749
|
||||
1156,147
|
||||
1019,806
|
||||
55,277
|
||||
299,459
|
||||
1223,252
|
||||
714,28
|
||||
415,869
|
||||
820,540
|
||||
1302,348
|
||||
868,331
|
||||
514,649
|
||||
843,491
|
||||
579,253
|
||||
6,33
|
||||
843,281
|
||||
80,694
|
||||
487,754
|
||||
1062,108
|
||||
964,57
|
||||
1197,824
|
||||
261,120
|
||||
1026,525
|
||||
763,9
|
||||
223,551
|
||||
420,389
|
||||
1049,54
|
||||
987,793
|
||||
396,642
|
||||
704,555
|
||||
1125,201
|
||||
843,831
|
||||
1014,193
|
||||
433,207
|
||||
1056,187
|
||||
244,810
|
||||
873,11
|
||||
1054,45
|
||||
651,109
|
||||
1169,481
|
||||
1109,17
|
||||
1208,154
|
||||
393,120
|
||||
219,816
|
||||
315,560
|
||||
1283,211
|
||||
67,351
|
||||
875,78
|
||||
1183,885
|
||||
952,74
|
||||
581,805
|
||||
726,290
|
||||
410,819
|
||||
460,701
|
||||
1059,855
|
||||
641,102
|
||||
959,189
|
||||
765,95
|
||||
1146,707
|
||||
365,129
|
||||
1093,771
|
||||
107,672
|
||||
1066,103
|
||||
909,54
|
||||
214,163
|
||||
1171,613
|
||||
223,835
|
||||
634,245
|
||||
714,476
|
||||
693,484
|
||||
912,45
|
||||
328,411
|
||||
13,624
|
||||
982,483
|
||||
310,868
|
||||
875,841
|
||||
618,163
|
||||
646,348
|
||||
70,221
|
||||
311,466
|
||||
818,536
|
||||
187,319
|
||||
1201,347
|
||||
711,763
|
||||
453,877
|
||||
45,758
|
||||
1154,68
|
||||
763,226
|
||||
1096,549
|
||||
507,484
|
||||
94,140
|
||||
403,476
|
||||
1160,581
|
||||
574,694
|
||||
365,186
|
||||
289,129
|
||||
770,448
|
||||
914,642
|
||||
1166,431
|
||||
1198,18
|
||||
338,367
|
||||
714,866
|
||||
813,718
|
||||
748,221
|
||||
676,21
|
||||
256,45
|
||||
601,235
|
||||
425,164
|
||||
840,798
|
||||
1134,385
|
||||
1303,26
|
||||
472,127
|
||||
639,774
|
||||
716,526
|
||||
930,82
|
||||
795,145
|
||||
219,91
|
||||
1198,94
|
||||
726,738
|
||||
800,711
|
||||
711,234
|
||||
32,768
|
||||
540,448
|
||||
214,184
|
||||
253,854
|
||||
311,428
|
||||
495,1
|
||||
1084,388
|
||||
674,799
|
||||
237,189
|
||||
43,410
|
||||
641,494
|
||||
1243,543
|
||||
201,115
|
||||
1181,627
|
||||
611,619
|
||||
256,449
|
||||
1096,688
|
||||
976,481
|
||||
331,101
|
||||
729,306
|
||||
545,498
|
||||
694,351
|
||||
811,114
|
||||
561,565
|
||||
65,232
|
||||
686,690
|
||||
445,861
|
||||
967,550
|
||||
164,84
|
||||
89,602
|
||||
182,767
|
||||
1076,617
|
||||
415,421
|
||||
113,614
|
||||
691,358
|
||||
1059,476
|
||||
639,858
|
||||
372,703
|
||||
619,806
|
||||
269,603
|
||||
902,791
|
||||
676,425
|
||||
979,793
|
||||
309,144
|
||||
562,561
|
||||
721,698
|
||||
1266,367
|
||||
1203,526
|
||||
305,294
|
||||
164,757
|
||||
1295,36
|
||||
1178,457
|
||||
1170,649
|
||||
472,15
|
||||
939,36
|
||||
959,511
|
||||
358,820
|
||||
718,159
|
||||
1039,579
|
||||
22,49
|
||||
541,518
|
||||
172,217
|
||||
239,252
|
||||
1034,507
|
||||
971,784
|
||||
1056,299
|
||||
836,588
|
||||
21,871
|
||||
872,28
|
||||
1033,600
|
||||
17,526
|
||||
530,189
|
||||
60,78
|
||||
273,737
|
||||
1307,505
|
||||
1297,102
|
||||
1019,582
|
||||
1310,185
|
||||
766,427
|
||||
1006,621
|
||||
577,281
|
||||
1267,410
|
||||
979,225
|
||||
572,567
|
||||
826,826
|
||||
542,793
|
||||
403,418
|
||||
253,812
|
||||
268,812
|
||||
1223,865
|
||||
909,406
|
||||
945,129
|
||||
875,526
|
||||
714,812
|
||||
140,245
|
||||
271,315
|
||||
572,119
|
||||
677,871
|
||||
987,221
|
||||
656,857
|
||||
482,665
|
||||
387,656
|
||||
1275,88
|
||||
109,347
|
||||
700,238
|
||||
125,555
|
||||
157,176
|
||||
875,53
|
||||
387,238
|
||||
483,562
|
||||
1297,400
|
||||
117,800
|
||||
361,86
|
||||
181,368
|
||||
73,406
|
||||
632,206
|
||||
393,568
|
||||
180,451
|
||||
485,268
|
||||
437,323
|
||||
57,110
|
||||
1265,136
|
||||
530,637
|
||||
311,596
|
||||
811,780
|
||||
221,560
|
||||
554,282
|
||||
909,530
|
||||
1171,281
|
||||
438,28
|
||||
261,840
|
||||
677,182
|
||||
150,810
|
||||
909,651
|
||||
1038,772
|
||||
16,219
|
||||
284,525
|
||||
1007,63
|
||||
634,649
|
||||
319,362
|
||||
565,292
|
||||
440,184
|
||||
1005,525
|
||||
1064,747
|
||||
335,691
|
||||
828,229
|
||||
659,785
|
||||
398,45
|
||||
952,372
|
||||
917,120
|
||||
1139,705
|
||||
440,94
|
||||
82,327
|
||||
144,183
|
||||
584,290
|
||||
1230,136
|
||||
589,641
|
||||
739,590
|
||||
246,147
|
||||
828,665
|
||||
1294,250
|
||||
43,843
|
||||
276,387
|
||||
1267,51
|
||||
1273,410
|
||||
781,555
|
||||
677,861
|
||||
870,294
|
||||
253,840
|
||||
693,17
|
||||
331,345
|
||||
768,262
|
||||
70,177
|
||||
67,543
|
||||
97,690
|
||||
16,250
|
||||
525,851
|
||||
252,180
|
||||
1002,463
|
||||
13,326
|
||||
277,294
|
||||
103,768
|
||||
589,876
|
||||
1288,245
|
||||
827,637
|
||||
253,581
|
||||
525,715
|
||||
725,504
|
||||
467,145
|
||||
1256,346
|
||||
164,309
|
||||
917,326
|
||||
244,119
|
||||
900,551
|
||||
647,474
|
||||
537,782
|
||||
1094,203
|
||||
22,245
|
||||
937,403
|
||||
219,803
|
||||
1146,309
|
||||
841,201
|
||||
144,887
|
||||
1006,721
|
||||
1123,319
|
||||
11,224
|
||||
425,690
|
||||
962,628
|
||||
170,696
|
||||
|
||||
fold along x=655
|
||||
fold along y=447
|
||||
fold along x=327
|
||||
fold along y=223
|
||||
fold along x=163
|
||||
fold along y=111
|
||||
fold along x=81
|
||||
fold along y=55
|
||||
fold along x=40
|
||||
fold along y=27
|
||||
fold along y=13
|
||||
fold along y=6
|
173
src/13.cs
Normal file
173
src/13.cs
Normal file
@ -0,0 +1,173 @@
|
||||
namespace aoc2021;
|
||||
|
||||
internal class Day13 : Day
|
||||
{
|
||||
internal override void Go()
|
||||
{
|
||||
Logger.Log("Day 13");
|
||||
Logger.Log("-----");
|
||||
var lines = File.ReadAllLines("inputs/13.txt");
|
||||
int phase = 0;
|
||||
var points = new List<(int, int)>();
|
||||
var folds = new List<(char, int)>();
|
||||
foreach (var line in lines)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(line))
|
||||
{
|
||||
phase++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (phase == 0)
|
||||
{
|
||||
var coords = line.Split(',');
|
||||
points.Add((Convert.ToInt32(coords[1]), Convert.ToInt32(coords[0])));
|
||||
}
|
||||
else
|
||||
{
|
||||
var instruction = line.Split('=');
|
||||
folds.Add((instruction[0].Last(), Convert.ToInt32(instruction[1])));
|
||||
}
|
||||
}
|
||||
var grid = new bool[points.Max(x => x.Item1) + 1, points.Max(x => x.Item2) + 1];
|
||||
foreach (var point in points)
|
||||
{
|
||||
grid[point.Item1, point.Item2] = true;
|
||||
}
|
||||
Part1(grid, folds);
|
||||
Part2(grid, folds);
|
||||
Logger.Log("");
|
||||
}
|
||||
|
||||
private static void Part1(bool[,] grid, IEnumerable<(char, int)> folds)
|
||||
{
|
||||
using var t = new Timer();
|
||||
|
||||
int maxX = grid.GetLength(0);
|
||||
int maxY = grid.GetLength(1);
|
||||
|
||||
foreach (var fold in folds)
|
||||
{
|
||||
for (int i = 0; i < grid.GetLength(0); i++)
|
||||
{
|
||||
for (int j = 0; j < grid.GetLength(1); j++)
|
||||
{
|
||||
var newX = i;
|
||||
var newY = j;
|
||||
if (fold.Item1 == 'y' && newX > fold.Item2)
|
||||
{
|
||||
newX = maxX - 1 - i;
|
||||
}
|
||||
if (fold.Item1 == 'x' && newY > fold.Item2)
|
||||
{
|
||||
newY = maxY - 1 - j;
|
||||
}
|
||||
|
||||
if (grid[i,j])
|
||||
{
|
||||
grid[newX, newY] = grid[i, j];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (fold.Item1 == 'x')
|
||||
{
|
||||
maxY -= fold.Item2 + 1;
|
||||
}
|
||||
else if (fold.Item1 == 'y')
|
||||
{
|
||||
maxX -= fold.Item2 + 1;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
int numDots = 0;
|
||||
for (int i = 0; i < maxX; i++)
|
||||
{
|
||||
for (int j = 0; j < maxY; j++)
|
||||
{
|
||||
if (grid[i, j] == true)
|
||||
{
|
||||
numDots++;
|
||||
}
|
||||
}
|
||||
}
|
||||
Logger.Log($"part1: {numDots}");
|
||||
}
|
||||
|
||||
private static void Part2(bool[,] grid, IEnumerable<(char, int)> folds)
|
||||
{
|
||||
using var t = new Timer();
|
||||
|
||||
int maxX = grid.GetLength(0);
|
||||
int maxY = grid.GetLength(1);
|
||||
|
||||
for (int foldNum = 0; foldNum < folds.Count(); foldNum++)
|
||||
{
|
||||
var fold = folds.ElementAt(foldNum);
|
||||
if (foldNum > 0)
|
||||
{
|
||||
var iStart = 0;
|
||||
var jStart = 0;
|
||||
if (fold.Item1 == 'x')
|
||||
{
|
||||
jStart = fold.Item2 + 1;
|
||||
}
|
||||
if (fold.Item1 == 'y')
|
||||
{
|
||||
iStart = fold.Item2 + 1;
|
||||
}
|
||||
for (int i = iStart; i < maxX; i++)
|
||||
{
|
||||
for (int j = jStart; j < maxY; j++)
|
||||
{
|
||||
var newX = i;
|
||||
var newY = j;
|
||||
if (fold.Item1 == 'y' && newX > fold.Item2)
|
||||
{
|
||||
newX = maxX - 1 - i;
|
||||
}
|
||||
if (fold.Item1 == 'x' && newY > fold.Item2)
|
||||
{
|
||||
newY = maxY - 1 - j;
|
||||
}
|
||||
|
||||
if (grid[i, j])
|
||||
{
|
||||
grid[newX, newY] = grid[i, j];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (fold.Item1 == 'x')
|
||||
{
|
||||
maxY -= fold.Item2 + 1;
|
||||
}
|
||||
else if (fold.Item1 == 'y')
|
||||
{
|
||||
maxX -= fold.Item2 + 1;
|
||||
}
|
||||
}
|
||||
|
||||
int numDots = 0;
|
||||
for (int i = 0; i < maxX; i++)
|
||||
{
|
||||
for (int j = 0; j < maxY; j++)
|
||||
{
|
||||
if (grid[i, j] == true)
|
||||
{
|
||||
Console.Write("#");
|
||||
numDots++;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.Write(".");
|
||||
}
|
||||
}
|
||||
Console.WriteLine();
|
||||
}
|
||||
Logger.Log($"part2: {numDots}");
|
||||
}
|
||||
}
|
@ -30,7 +30,8 @@ else
|
||||
"9" => new Day09(),
|
||||
"10" => new Day10(),
|
||||
"11" => new Day11(),
|
||||
_ => new Day12(),
|
||||
"12" => new Day12(),
|
||||
_ => new Day13(),
|
||||
};
|
||||
day.Go();
|
||||
}
|
||||
|
Reference in New Issue
Block a user