commit 91457ebd8a6248533fadf2f611b699f4296f79df
Author: Samir Parikh <noreply@samirparikh.com>
Date: Tue, 20 Dec 2022 22:17:02 +0000
initial commit and solve part 1 of day 1
Diffstat:
4 files changed, 2312 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
@@ -0,0 +1,10 @@
+This repository contains my attempt to solve the 2022 edition of the [Advent of Code](https://adventofcode.com/2022)
+challenge using Perl 5.
+
+Note: For this set of puzzles, I decided to read the entire input file into a scalar variable (i.e. slurp the file).
+To do this, you'll see the following near the beginning of each file:
+
+ chomp( my $input = do { local $/; <> } );
+
+More information regarding this syntax can be found here:
+https://www.perl.com/article/21/2013/4/21/Read-an-entire-file-into-a-string/
diff --git a/day01/day01.pl b/day01/day01.pl
@@ -0,0 +1,24 @@
+#!/usr/local/bin/perl
+# day 2022-01
+
+use strict;
+use warnings;
+use v5.32;
+
+@ARGV = "input" unless @ARGV;
+chomp( my $input = do { local $/; <> } );
+
+my @items = split /\n/, $input;
+my $max = 0;
+my $current = 0;
+
+foreach my $item ( @items ) {
+ unless ( $item ) {
+ $max = $current if ( $current > $max );
+ $current = 0;
+ } else {
+ $current += $item;
+ }
+}
+
+say "part 1: ", $max;
diff --git a/day01/input b/day01/input
@@ -0,0 +1,2264 @@
+9686
+10178
+3375
+9638
+6318
+4978
+5988
+6712
+
+10422
+3062
+2753
+3695
+1722
+8110
+6568
+7124
+
+3162
+6117
+2560
+8788
+2413
+3719
+1052
+1349
+4780
+5178
+
+24919
+15983
+18045
+
+24872
+35761
+
+20914
+
+4701
+7592
+1014
+12219
+3794
+6893
+
+6471
+5100
+4297
+8538
+3923
+8135
+2015
+2255
+
+1631
+8016
+4371
+5797
+5252
+1487
+8289
+8886
+1149
+
+8082
+8747
+4577
+3624
+4481
+7947
+2790
+9217
+4729
+
+4069
+1728
+4093
+2978
+6582
+7897
+8643
+6644
+6473
+5476
+
+2319
+22021
+15407
+
+4522
+6382
+7089
+4432
+2795
+1003
+2831
+6318
+8082
+6085
+
+6379
+3407
+1390
+2026
+2030
+5246
+6918
+4426
+6198
+6476
+5351
+1033
+1162
+
+8071
+1526
+7680
+5507
+6398
+6183
+8175
+3282
+4522
+
+5629
+3140
+8533
+6464
+3686
+2374
+2301
+5700
+3279
+
+13663
+6031
+6803
+6393
+11160
+4072
+
+4857
+1156
+5520
+7976
+7668
+1279
+1326
+
+7711
+3945
+2583
+5502
+13777
+
+34906
+15510
+
+2588
+4153
+4506
+6765
+6541
+3058
+5648
+1128
+1968
+2492
+4147
+7017
+
+1394
+3512
+8021
+9546
+2626
+9116
+2891
+2875
+7467
+
+18630
+
+19644
+32798
+
+3971
+5752
+2806
+5887
+5795
+1287
+3304
+3597
+3474
+1179
+3770
+1015
+3592
+4485
+4764
+
+7482
+2786
+3311
+
+3192
+3483
+2424
+3037
+3110
+7110
+5647
+6269
+6561
+7272
+2554
+1036
+
+6564
+3818
+3472
+1020
+1410
+5849
+2679
+4928
+3751
+5858
+4227
+5278
+
+4117
+3263
+3692
+1978
+4588
+2585
+6214
+6494
+1778
+3568
+3864
+2868
+4305
+1430
+
+1221
+1373
+1096
+5913
+3836
+5890
+3601
+4165
+3495
+1397
+4949
+1134
+6029
+5142
+
+27593
+11384
+
+2784
+1688
+3096
+3150
+4879
+4582
+1333
+1807
+2379
+5554
+3324
+5152
+5012
+2462
+1222
+
+4859
+10400
+5079
+11803
+2503
+10827
+5426
+
+5345
+8211
+1451
+4410
+8381
+4890
+7548
+7246
+1780
+3917
+
+6854
+3240
+8375
+3079
+5972
+2835
+2674
+3492
+3796
+
+6733
+6827
+10768
+10517
+4257
+3205
+7453
+
+1099
+1739
+9012
+2371
+4084
+1693
+3029
+1434
+
+5254
+11413
+7980
+4327
+8249
+9088
+3606
+
+6987
+11807
+10066
+2892
+5783
+
+2796
+23737
+10352
+
+2634
+
+49880
+
+4685
+22996
+19146
+
+28725
+
+15169
+8027
+5352
+2138
+2120
+
+6615
+
+2024
+8972
+10861
+5491
+8987
+8435
+11850
+
+3344
+2538
+6150
+8412
+1846
+4479
+2644
+5897
+5393
+5998
+
+18876
+9663
+9689
+11058
+
+6583
+11800
+7779
+2848
+2722
+4396
+7549
+
+3246
+5003
+7862
+6912
+8904
+3942
+7496
+7132
+5370
+
+12064
+7414
+9559
+5152
+7290
+9582
+5481
+
+10086
+3167
+9372
+
+11462
+4147
+5783
+9869
+6777
+4304
+7994
+
+8294
+7105
+6757
+7863
+3160
+1528
+7169
+7838
+2268
+3947
+
+4584
+2761
+1785
+8626
+5990
+2024
+6423
+3467
+2700
+8439
+
+4345
+6322
+2099
+11273
+12175
+1463
+
+10421
+12435
+
+5558
+3558
+4218
+4032
+1163
+1627
+7457
+3703
+4028
+1023
+2037
+5726
+
+6668
+17056
+6110
+
+3542
+3056
+8182
+6347
+6062
+1489
+2602
+5081
+6673
+8375
+
+10854
+30495
+
+3402
+2945
+2982
+2379
+3173
+3456
+4373
+2120
+3383
+4479
+5662
+4288
+6776
+
+4621
+5405
+2698
+3244
+4090
+6275
+5460
+3835
+4066
+3355
+4301
+5429
+2772
+2712
+
+3836
+2729
+6662
+3756
+4596
+4783
+3636
+3965
+1593
+2152
+2658
+7456
+
+5299
+5046
+1717
+3615
+5827
+1622
+6363
+1352
+2279
+5193
+2936
+3009
+6706
+
+62000
+
+6685
+2477
+2113
+5147
+4652
+5793
+4917
+7792
+6330
+5030
+
+12537
+24802
+
+7935
+8012
+
+2421
+7653
+4554
+1956
+4607
+7395
+2884
+1969
+6443
+8245
+
+6117
+5191
+4630
+1140
+6668
+5451
+6697
+4489
+5269
+2465
+
+6837
+12023
+1789
+15035
+
+8901
+3155
+10520
+7453
+8927
+2128
+3719
+2603
+
+4407
+3576
+2621
+11197
+4048
+7417
+6378
+
+26360
+30617
+
+5540
+19475
+16907
+14236
+
+12536
+28934
+
+8992
+12942
+9843
+10281
+
+12753
+7704
+
+14617
+16937
+
+6129
+2474
+1298
+11648
+3020
+13000
+
+1105
+7814
+8488
+4284
+3278
+2762
+1956
+3020
+3604
+5909
+
+8949
+32474
+
+9354
+11532
+2977
+2575
+4038
+4165
+6043
+
+16780
+21589
+15519
+
+8929
+1176
+3057
+2567
+7937
+4959
+4256
+1722
+6570
+
+2959
+5442
+4853
+1549
+1536
+5182
+3162
+3241
+5325
+2981
+4123
+5075
+4265
+3914
+1534
+
+21076
+21413
+4121
+
+2364
+3051
+15060
+15441
+5350
+
+6444
+4119
+16142
+
+12702
+1593
+10837
+3016
+12402
+7042
+
+13897
+10933
+1898
+1192
+9621
+1669
+
+3555
+4589
+4554
+5877
+2963
+5429
+2915
+2849
+2882
+4263
+2041
+3715
+3060
+2303
+
+11964
+4040
+1263
+7289
+15158
+
+5623
+2844
+5308
+3138
+1993
+3563
+6627
+3503
+3715
+4622
+6335
+5643
+
+9204
+13679
+11665
+13069
+8239
+
+3263
+3999
+3795
+6653
+9340
+2589
+4005
+
+7500
+4295
+1968
+6505
+7489
+1744
+7166
+6015
+2376
+
+9225
+15648
+9771
+6353
+
+5602
+4032
+5956
+3389
+6191
+2664
+3316
+4315
+3835
+2812
+4567
+3807
+3900
+6049
+
+9856
+15646
+16811
+9434
+
+2608
+5821
+2961
+4460
+3216
+6185
+6432
+4535
+2637
+3924
+1974
+5768
+4971
+
+7986
+11586
+10183
+8977
+2084
+2145
+9341
+
+4685
+8276
+12887
+17836
+
+9164
+2380
+6783
+3995
+7267
+1261
+4388
+4553
+1097
+
+8223
+1915
+11132
+4659
+11049
+7510
+
+4913
+8607
+16691
+9972
+
+7210
+6436
+4538
+9051
+5474
+1160
+5078
+8171
+6253
+
+16053
+7244
+
+11209
+13125
+16289
+
+18073
+12316
+7433
+18146
+
+16372
+12640
+7592
+7330
+6436
+
+15791
+4640
+8961
+2333
+4146
+
+8804
+6092
+8411
+8919
+4059
+7108
+2972
+4028
+5195
+
+13788
+3616
+19422
+7306
+
+6851
+7067
+3876
+9144
+13656
+2327
+
+1966
+2583
+1157
+2915
+6675
+3776
+1302
+6089
+2172
+3532
+2863
+3901
+1531
+
+9831
+12160
+11410
+10388
+
+1745
+3005
+8080
+5559
+6190
+2608
+7327
+2918
+
+3396
+4608
+5926
+4771
+4039
+2174
+2121
+5335
+1336
+1675
+2359
+3973
+3239
+5151
+1931
+
+1449
+1728
+4133
+6107
+2320
+1185
+4399
+3983
+2801
+3940
+6492
+5123
+4035
+3978
+
+6109
+6364
+1026
+3149
+2741
+3875
+1984
+5286
+1888
+3023
+2625
+2827
+2957
+1806
+
+30480
+13619
+
+6289
+3501
+3339
+3547
+4583
+3975
+3044
+4120
+1519
+5909
+2056
+
+6066
+2415
+3690
+8311
+4415
+5086
+2243
+7362
+5987
+
+23114
+11625
+16362
+
+1968
+4106
+1413
+3111
+7762
+5820
+5670
+5574
+6409
+5357
+
+16940
+1118
+17725
+19352
+
+4795
+4181
+2637
+2630
+2424
+1778
+5931
+4683
+2394
+5086
+4831
+3332
+2698
+3486
+4771
+
+2149
+4199
+2711
+6010
+1129
+1231
+6029
+3041
+1062
+3989
+4288
+4097
+3866
+2487
+2904
+
+5703
+3132
+3141
+3076
+2213
+1286
+1553
+4281
+5310
+3129
+1686
+4290
+1523
+2253
+
+3393
+5859
+9430
+7600
+3773
+6009
+6501
+
+2112
+3375
+4744
+2051
+7859
+5263
+7294
+4412
+3787
+3697
+3237
+
+6377
+5061
+6859
+13460
+14181
+
+5001
+7058
+5323
+3147
+5016
+7995
+8072
+1337
+4375
+5257
+3975
+
+3785
+3750
+3530
+3048
+2905
+2034
+6828
+1797
+6657
+3317
+2701
+2805
+5267
+
+3394
+3691
+6713
+2117
+2962
+1057
+5815
+4045
+1400
+1865
+
+18465
+
+3921
+1777
+7151
+1041
+5017
+7230
+1976
+4454
+1604
+7350
+5884
+1003
+
+2624
+1309
+6631
+9455
+6512
+7719
+7483
+4181
+5094
+
+2569
+9911
+14251
+8292
+12541
+
+2439
+1330
+1018
+5115
+4820
+5319
+3124
+3076
+1693
+2628
+2344
+3158
+1718
+4605
+
+4199
+3446
+4622
+6428
+5002
+1766
+2452
+5311
+6527
+2064
+4993
+2024
+4693
+
+1280
+3349
+4131
+5665
+2363
+3945
+5484
+3679
+1486
+3646
+3623
+4184
+3000
+1048
+2655
+
+14131
+3553
+13678
+1207
+
+5857
+6149
+3312
+4757
+2563
+1790
+1221
+5509
+3380
+1359
+2480
+4558
+6280
+6369
+
+1547
+3878
+5568
+1225
+1380
+2200
+5147
+2039
+6309
+2982
+3495
+2152
+5235
+
+16640
+20034
+9548
+
+1753
+3165
+1652
+4443
+1216
+4491
+1942
+1762
+1107
+4286
+3966
+1075
+4525
+4613
+1913
+
+1009
+2116
+7166
+3405
+7214
+6239
+4865
+5685
+7262
+3953
+6155
+1625
+
+11721
+15346
+2328
+
+1874
+1749
+5597
+1262
+6198
+4768
+5577
+4281
+2519
+4929
+5366
+3798
+4735
+5911
+
+5955
+9870
+1445
+9985
+2525
+3789
+9850
+8345
+
+4573
+1388
+5113
+5476
+4662
+1491
+4951
+4466
+3762
+1945
+4543
+1206
+1464
+2592
+3641
+
+1335
+1373
+2210
+4502
+6682
+3789
+3132
+6931
+4406
+2178
+
+3208
+2932
+4708
+7096
+3292
+1181
+7684
+7182
+4935
+
+33589
+
+3334
+1623
+14592
+12083
+8779
+
+2894
+5672
+4799
+5270
+4984
+2968
+4691
+5946
+4794
+3982
+1050
+3329
+1705
+2157
+5903
+
+6094
+4559
+3567
+6528
+10766
+6235
+11374
+
+3073
+5101
+11776
+9277
+6191
+4145
+3796
+
+7420
+7909
+4665
+4147
+3076
+7307
+7796
+5377
+3060
+6959
+
+7330
+
+35781
+
+21425
+21583
+5018
+
+4184
+1379
+6016
+3474
+6024
+4306
+3615
+1908
+2850
+1928
+3089
+
+16714
+5650
+15944
+11173
+
+9343
+16875
+12773
+14484
+
+10430
+10942
+11646
+3054
+7681
+9377
+9747
+
+1306
+6064
+9684
+2441
+5045
+4444
+5012
+6192
+1975
+
+1344
+5398
+5433
+7606
+8077
+7391
+1909
+2436
+6590
+1780
+7328
+
+1965
+1722
+6019
+2211
+5501
+6079
+2874
+2073
+6101
+1485
+1281
+2820
+2924
+1053
+
+4243
+1623
+2406
+5790
+3669
+4752
+5178
+6264
+6380
+2595
+3841
+1924
+
+1396
+4822
+5173
+4566
+5742
+4373
+3061
+3710
+3165
+2752
+4663
+3674
+1988
+5783
+4851
+
+4241
+7995
+10301
+9600
+3012
+2005
+7728
+2592
+
+4258
+4068
+3590
+4519
+4699
+4420
+1850
+2672
+1702
+1419
+5779
+2548
+5901
+6088
+
+65317
+
+4907
+1843
+6719
+2996
+8461
+1214
+7159
+3834
+9003
+
+49655
+
+3092
+5048
+1627
+1180
+3552
+4004
+3769
+1024
+4362
+5281
+5272
+3328
+3477
+5851
+1852
+
+13904
+7402
+7268
+3770
+2397
+10475
+
+8476
+1976
+6163
+8095
+1462
+4641
+3808
+3857
+
+3335
+6780
+2119
+5330
+7117
+7491
+3805
+8481
+6605
+7085
+
+4322
+7670
+9443
+9057
+3985
+3627
+5998
+4438
+1504
+
+13151
+10965
+11166
+13415
+
+5671
+8571
+11580
+7158
+9153
+5862
+5101
+
+4456
+3654
+8081
+5430
+2761
+3354
+5363
+6253
+2655
+4659
+
+1596
+2737
+8104
+8749
+3052
+5251
+2949
+1621
+7083
+
+2651
+11140
+13548
+3706
+12111
+
+10168
+12202
+22359
+
+6858
+5062
+
+13856
+10455
+
+12441
+19040
+
+6274
+9591
+6760
+4995
+6509
+
+8503
+6463
+1391
+5937
+2652
+6222
+3700
+4437
+4223
+
+1347
+5568
+3527
+2038
+7671
+2747
+2076
+5001
+6812
+6935
+4605
+
+6064
+4289
+3615
+1534
+1503
+3969
+5012
+5882
+1072
+3045
+1108
+1100
+5537
+2296
+5210
+
+2276
+5684
+8123
+10661
+
+14356
+10192
+8724
+9007
+2580
+
+4185
+1781
+4779
+2912
+2168
+1818
+2476
+4738
+4184
+4399
+2516
+5069
+4411
+1555
+4792
+
+17014
+
+32213
+4835
+
+9759
+16225
+
+13768
+12275
+12116
+5614
+13597
+11836
+
+13759
+5359
+16706
+3223
+
+5529
+8735
+2684
+7245
+4021
+6476
+4830
+4545
+4689
+
+7538
+
+2382
+11825
+7660
+12725
+8655
+6276
+
+3726
+8819
+8277
+11877
+2680
+9393
+9534
+
+5712
+4484
+3939
+6190
+12015
+8155
+3414
+
+1744
+3387
+5549
+5161
+1944
+3018
+2892
+4872
+2058
+3465
+5410
+4294
+4460
+5671
+2677
+
+3277
+5567
+1927
+4030
+2402
+6956
+1493
+2694
+2953
+4684
+1757
+
+2412
+9606
+11353
+2517
+4728
+13835
+
+8658
+3007
+3050
+7032
+10355
+7154
+2882
+1771
+
+7005
+4228
+4094
+6651
+2666
+4580
+6731
+7665
+6497
+2146
+3836
+
+49889
+
+1694
+21826
+15682
+
+4069
+11100
+14655
+13224
+4596
+
+7669
+4609
+5102
+6077
+6909
+5199
+6616
+3888
+2759
+5067
+1215
+
+1178
+1772
+6040
+6155
+7363
+2308
+1947
+2395
+1998
+
+3637
+1397
+3793
+2486
+1535
+6323
+5601
+1122
+4774
+5946
+3911
+1983
+5110
+6123
+
+4280
+3131
+
+2074
+8575
+10967
+11051
+7926
+
+5181
+5262
+9549
+4648
+5870
+10554
+
+10006
+9886
+1787
+4121
+6732
+11668
+1701
+
+9374
+10024
+4499
+19405
+
+2653
+2184
+1682
+2239
+5008
+3214
+6107
+1386
+1746
+1625
+6576
+5311
+2448
+
+2752
+1482
+2199
+1874
+6361
+1308
+2520
+5508
+7547
+2123
+
+3589
+3732
+1867
+1000
+3740
+6457
+7409
+1310
+7995
+6470
+
+3216
+3362
+1330
+7974
+7888
+7616
+5315
+6599
+4725
+8265
+
+25525
+11728
+2872
+
+15044
+2896
+9572
+10589
+4530
+
+6439
+10037
+1455
+12711
+3160
+2979
+
+2176
+6329
+3361
+6290
+1759
+5233
+3803
+2310
+5657
+4209
+4457
+1883
+3449
+1304
+
+11140
+4322
+11612
+8569
+8463
+6798
+5517
+
+4374
+6158
+5395
+2805
+1792
+3798
+6749
+4769
+6825
+6759
+6835
+4871
+1074
+
+1474
+4540
+2518
+4116
+3756
+3306
+4666
+3344
+3742
+6019
+3442
+2869
+2045
+4736
+3950
+
+6446
+7360
+1549
+8156
+1739
+1610
+2676
+
+2168
+2396
+6164
+7025
+8787
+8097
+3409
+4574
+3966
+
+3086
+2856
+5035
+5065
+5864
+1594
+7703
+6964
+7211
+7718
+1107
+
+51004
+
+4918
+1158
+2005
+4612
+7834
+1074
+9254
+5527
+1324
+
+6855
+3281
+1711
+6762
+7458
+6741
+4422
+1410
+7470
+3944
+1893
+
+9371
+15492
+19708
+12935
+
+5733
+3862
+4820
+2177
+8633
+7626
+6625
+7092
+8201
+2674
+
+49048
+
+7618
+4063
+4934
+2443
+2170
+6858
+4485
+3340
+1799
+3106
+
+8992
+6122
+2877
+9496
+2383
+7021
+4371
+8902
+5207
+
+14001
+26749
+
+15324
+23968
+19677
+
+5335
+2824
+4423
+5694
+7382
+8340
+1838
+8489
+7044
+6785
+
+3771
+2619
+2974
+9941
+8552
+5552
+3107
+2597
+
+3505
+1425
+4302
+6794
+3867
+6186
+2169
+6833
+4437
+5529
+1621
+1454
+6758
+
+4211
+2770
+3598
+2408
+5814
+1930
+4342
+1792
+6068
+3389
+2838
+2599
+3464
+4967
+
+2326
+1344
+3774
+5442
+1575
+5559
+1918
+4675
+2672
+2538
+4055
+3083
+5036
+1558
+4674
+
+2098
+15641
+1220
+5315
+
+12642
+15560
+4074
+15919
+
+21911
+9200
+10100
+
+2645
+12965
+
+8655
+8517
+7883
+6615
+2964
+6688
+1089
+4816
+6827
+1743
+
+14801
+
+7826
+6082
+5962
+6382
+5873
+9072
+6773
+7190
+3114
+
+6448
+8620
+7630
+8340
+5270
+8082
+1467
+7973
+2886
+
+1010
+4394
+3625
+1476
+4141
+5883
+7079
+3272
+6419
+
+5456
+2482
+8364
+1530
+11974
+11305
+12132
+
+2319
+6357
+6245
+3226
+3813
+5844
+4492
+4140
+3185
+4965
+5452
+1614
+1123
+
diff --git a/day01/test b/day01/test
@@ -0,0 +1,14 @@
+1000
+2000
+3000
+
+4000
+
+5000
+6000
+
+7000
+8000
+9000
+
+10000