[2024][ruby][1.x] cleaned up
diff --git a/2024/ruby/day_01.rb b/2024/ruby/day_01.rb
index 546d620..65b7de6 100644
--- a/2024/ruby/day_01.rb
+++ b/2024/ruby/day_01.rb
@@ -1,1014 +1,14 @@
-input = DATA.read.chomp
- .lines
- .map { _1.split.map(&:to_i) }
- .transpose
+input = DATA.read
+ .scan(/\d+/).map(&:to_i)
+ .each_slice(2).to_a.transpose
.map(&:sort)
-a, b = input
+left, right = input
-# pp a.zip(b).map { _1 - _2 }.map(&:abs).sum
+# part one
+pp left.zip(right).sum { (_1 - _2).abs }
-b = b.tally
-pp a.sum { _1 * b.fetch(_1, 0) }
+# part two
+pp left.sum { _1 * right.count(_1) }
__END__
-84283 63343
-35360 98209
-17841 84541
-22035 44413
-43645 22440
-45290 95042
-47251 69434
-39300 96178
-19278 89783
-85842 65775
-35833 86545
-83505 46651
-84748 99338
-89475 33222
-42161 58577
-44380 60478
-71528 39698
-70514 65226
-44413 43676
-33787 32152
-90737 63686
-37294 68183
-75263 59626
-60662 72213
-84705 69756
-21217 99901
-72906 34754
-93885 69920
-95413 90232
-15097 99343
-51861 30403
-86779 81128
-89053 71770
-91473 84748
-42848 83319
-75389 16660
-79784 77290
-93069 79793
-47264 51397
-27695 54288
-92063 39301
-39085 15346
-51201 25788
-17981 36723
-32685 56814
-98625 47590
-69815 20602
-93402 99803
-72880 15499
-97907 62268
-76481 85794
-44842 69492
-80295 16660
-97958 94756
-89545 16660
-73090 77911
-72433 16911
-85972 27192
-10582 69368
-22334 16852
-43360 63474
-79393 86545
-42302 14040
-61177 58936
-49655 42875
-72005 33787
-58727 43007
-37514 33044
-99443 33020
-52137 58953
-49038 71779
-94756 37855
-62268 44413
-27702 33097
-98521 65775
-61583 12043
-22777 65011
-18614 58936
-38328 73771
-15249 75263
-33863 40144
-46651 46651
-61084 82666
-39251 68710
-22781 42030
-53976 41887
-35530 66749
-25493 10759
-20353 17588
-84109 65785
-83893 32822
-30896 10671
-97083 33787
-73752 61585
-67790 86677
-79260 34669
-65897 82748
-44296 15919
-21934 96178
-77571 39195
-56142 75263
-57117 97137
-23301 98209
-73163 86545
-91882 82221
-95331 31680
-59289 77212
-15754 71947
-46398 88874
-10667 15893
-69601 15499
-11225 22506
-98793 43676
-97146 65775
-86898 27456
-50178 43676
-19563 96178
-37236 83319
-48110 15099
-87813 83628
-45147 28949
-18308 15320
-83455 62844
-31167 94756
-57734 78110
-28433 71843
-17114 50003
-30689 83319
-32142 84973
-75022 97137
-37954 58936
-87682 71077
-75831 51397
-15774 31580
-97448 70574
-11672 91230
-65732 47962
-42222 62092
-80590 69230
-58007 43676
-51361 81128
-77212 95485
-97079 80445
-14347 51648
-60311 82950
-91345 94033
-98757 43676
-17921 10573
-66116 44413
-51094 90107
-67373 80341
-79628 16066
-69987 96086
-27839 76671
-18904 76136
-87664 15499
-34757 65775
-59509 77212
-36746 29953
-49422 90054
-15204 94756
-76707 10470
-57263 81128
-24221 15499
-66460 34853
-26979 24071
-50113 51397
-27576 18881
-10024 58690
-94266 44338
-53098 15499
-49708 26678
-45448 14024
-71075 86545
-70967 16660
-79261 17794
-10368 47000
-52272 44413
-99474 63493
-62001 62268
-13025 58936
-44750 31131
-53413 78110
-29540 86516
-67424 93231
-19550 58936
-47390 36675
-26625 78110
-53218 44473
-96391 67378
-99990 86545
-15308 36723
-65730 71355
-65789 52609
-87805 42937
-29236 78110
-31771 94756
-18987 59217
-64300 10605
-78147 86545
-48116 86545
-92646 31914
-65185 75151
-19530 78110
-52051 95575
-85748 46024
-79421 44413
-80422 93619
-29790 89448
-55576 47590
-49121 38714
-72333 55404
-65315 65775
-90550 75308
-31131 70078
-24074 84512
-25162 11398
-75109 71691
-43749 47992
-75832 80252
-65214 63054
-39525 97845
-63454 51633
-51736 56796
-35556 54493
-21880 78110
-65295 85023
-92624 63420
-40519 60621
-17223 26035
-58997 82029
-96291 43676
-18878 17802
-83923 86545
-39873 52247
-11656 18538
-70458 98474
-84033 62268
-39535 40947
-32254 83944
-61992 45922
-29791 65458
-54348 50197
-19270 33788
-85744 13744
-96599 86043
-30579 51397
-45856 97022
-50586 39670
-23436 21616
-60158 69962
-60361 46651
-78825 65775
-10426 94756
-96035 97582
-15499 52076
-20954 57704
-22388 51397
-81163 58840
-91634 62284
-32022 60129
-91628 83319
-62766 39021
-69120 52720
-90633 86545
-10409 56735
-12777 48223
-34714 75263
-79836 42421
-10520 75263
-62340 75043
-39720 26790
-46519 39888
-61520 65775
-33304 22157
-36117 47033
-70466 26469
-64757 58936
-21216 65775
-18545 47590
-93089 12789
-93798 86967
-82130 93561
-25802 82666
-84789 53152
-40909 51397
-71607 63580
-58121 46248
-96176 83150
-57256 56877
-45369 81128
-14089 80671
-62274 58936
-93696 30843
-87893 11107
-70203 33787
-64881 41883
-25012 88519
-61533 26411
-42375 15214
-71157 31131
-83004 53943
-91731 20072
-80380 32606
-84931 93116
-84992 82666
-18938 85274
-53302 66304
-54031 25703
-53733 82087
-70053 16035
-94922 46651
-51039 15775
-95907 25691
-48755 86545
-71863 52366
-26925 57806
-78898 70700
-42515 82666
-73641 13915
-76761 68975
-81003 64780
-78110 93231
-43324 32347
-21609 82998
-82606 47590
-81882 81455
-33483 15499
-94856 96178
-83072 91213
-95776 15752
-49704 67234
-38311 59510
-18526 73415
-34486 49323
-86291 95736
-48231 48723
-58843 94756
-39909 96229
-48028 97137
-56310 29503
-99185 24905
-17336 82666
-92522 85585
-13402 73819
-32705 81018
-48232 69309
-57780 67505
-81213 58936
-98451 82666
-99334 65775
-20346 83118
-23437 66474
-10188 47428
-36257 54877
-56471 83319
-16660 96178
-67004 82666
-42043 25942
-73986 23575
-22940 75135
-14788 90530
-17351 83319
-93467 47590
-45821 68349
-50930 64681
-97634 35360
-43212 31098
-74266 69116
-54839 31433
-21639 25809
-46195 44054
-51737 84748
-42702 86545
-33691 77212
-27068 16406
-82599 15400
-39389 67976
-20089 57521
-43676 38333
-40624 36299
-69489 65775
-57102 86545
-85599 98399
-28855 77212
-61910 71149
-72866 85822
-89253 93951
-92040 90428
-79472 18069
-86424 58936
-37352 44413
-85210 94311
-89903 78875
-80026 60474
-88961 99820
-38159 81128
-35620 38529
-93003 52573
-48646 58936
-44325 13961
-82076 24493
-74069 81128
-18067 28571
-99684 10225
-21031 82452
-90638 86545
-57199 31313
-82205 13207
-71149 73214
-58191 81342
-47303 65775
-36022 37220
-72656 49204
-55308 53561
-19095 65493
-46635 71555
-15506 64319
-40226 49581
-25646 79607
-44326 44382
-74259 78110
-83125 44570
-85377 51736
-49474 81128
-77096 66424
-32334 82666
-88697 91300
-13865 11138
-48113 75493
-15017 81128
-61694 93132
-27654 65809
-79058 86545
-32035 84748
-20212 22750
-51434 35768
-89681 75874
-38356 91593
-40535 30523
-35913 51397
-20493 78110
-65172 84035
-20026 74404
-74410 30968
-63206 31719
-39064 41786
-57312 85504
-42601 93207
-56746 31131
-13866 83100
-56073 86545
-89828 68239
-43617 80074
-68234 40950
-17714 96178
-91242 93460
-61907 51622
-45542 54328
-56287 98209
-33780 54835
-81704 17337
-95069 45562
-54245 83519
-10776 92714
-15551 83089
-47590 46303
-71220 47329
-20160 28184
-93991 88224
-59450 97215
-71333 84428
-42520 48130
-54366 15499
-31338 44103
-94941 86108
-13396 81924
-74187 93231
-10131 47816
-34774 44413
-36723 91465
-45677 34269
-13499 35048
-15009 58120
-84895 90143
-74165 83319
-18259 46651
-98209 87849
-80104 96178
-69709 96178
-68814 62370
-97541 29548
-73729 39436
-72978 62854
-58000 84748
-63119 81674
-40369 44413
-90150 95171
-52608 92615
-71077 38291
-31624 93044
-38760 77212
-91176 58936
-63143 40887
-91823 16660
-34818 44413
-59892 11840
-17484 36429
-30905 54199
-32038 17281
-36181 79577
-61442 58936
-52676 92055
-84219 94756
-66449 58936
-22863 73911
-23017 89669
-79892 94756
-82803 51397
-83319 65016
-30234 42381
-73499 45602
-46440 44587
-95631 44461
-81128 76437
-74448 46651
-14447 52123
-32611 24331
-57781 22177
-64820 65775
-68420 84266
-47754 67988
-34335 71149
-29717 64219
-89191 64088
-82795 57333
-16549 22484
-82556 77514
-99163 23617
-18471 93880
-56195 44413
-89300 85985
-46990 17063
-81806 15499
-38774 57907
-75955 45074
-56634 53662
-14693 31131
-53016 52394
-73961 91020
-62726 10077
-73112 92012
-95820 81782
-89033 43179
-18786 68422
-37161 54313
-65250 96178
-37464 43676
-86725 79195
-85011 26319
-67737 69409
-98362 54308
-34884 44086
-32918 45910
-44619 52487
-80495 81128
-55837 51397
-60689 40038
-44176 54195
-39854 12679
-13045 94621
-40466 56205
-97137 77870
-19527 69865
-88017 39180
-31622 21522
-79812 11165
-55320 85476
-99675 95829
-10226 39512
-58609 56835
-92126 77212
-85290 36723
-79783 51199
-93581 47590
-90551 41001
-40558 11266
-39089 24707
-32385 66290
-16747 34912
-20505 78110
-70730 52705
-48459 15541
-66724 82666
-26340 71149
-11972 70352
-85523 91638
-76588 87532
-15882 85803
-84892 71074
-17238 46651
-72970 40619
-63431 71149
-90427 85393
-57232 69012
-64933 35643
-56557 86545
-89980 84682
-39968 59407
-22733 20816
-64872 58936
-58936 26119
-75725 37733
-28054 15499
-72081 31664
-25950 98957
-35455 33324
-61813 15499
-41704 25493
-79271 86494
-23953 51653
-46535 41106
-63102 96797
-30834 94721
-64012 91509
-68305 51458
-94295 72833
-40622 63182
-91004 79623
-64037 88188
-11981 71149
-94012 17064
-78178 71465
-61342 12008
-46974 58318
-57688 78663
-64308 23440
-44044 46651
-36812 12527
-46898 96178
-37454 45987
-96884 43676
-52528 43676
-56661 72213
-91311 58936
-94931 38918
-87647 17588
-57203 46651
-21346 42051
-61629 21742
-93631 48556
-81359 34333
-66314 90524
-13411 62864
-15431 82666
-62759 80050
-84813 65775
-71791 51397
-83838 16358
-90129 99706
-98160 31885
-33794 77212
-71088 93454
-85754 75521
-85337 36180
-54712 43676
-43618 58936
-25861 51397
-59485 84700
-20950 98209
-59143 36723
-19018 96178
-99973 62268
-35822 38826
-31306 99043
-92941 31131
-92804 77212
-62182 15499
-93200 39106
-79238 66201
-56028 97137
-26131 41721
-55412 86233
-40092 64847
-89193 97749
-84584 44413
-58395 69675
-70934 42497
-27303 24086
-41447 95939
-15725 64142
-69760 58936
-81266 53614
-95326 57234
-89236 97137
-45408 99439
-65803 58102
-23823 89352
-82448 83319
-12317 15499
-63704 31229
-31591 46651
-60656 40668
-84397 86629
-15943 71628
-69553 40846
-67670 20397
-29623 41118
-45656 11366
-57563 57937
-35401 33787
-29524 92772
-10799 77212
-20503 81128
-31145 97137
-24662 17588
-88787 42052
-77284 27806
-81111 13760
-96401 77212
-45881 84748
-14096 91121
-31716 44830
-96178 97137
-11460 79257
-22663 64393
-17066 53398
-48248 17099
-47906 13089
-60675 18687
-14382 86545
-62222 70385
-99668 63170
-16029 71024
-20810 82413
-11971 63222
-70446 98209
-95100 19344
-81776 14882
-56409 90152
-78955 66877
-15972 35794
-82762 57101
-40585 43676
-82715 32513
-13035 12929
-41208 43676
-75405 51397
-52968 37848
-89777 77408
-47910 41390
-17844 92716
-78842 71149
-96933 78110
-84401 86308
-22335 83319
-38772 39043
-10235 91837
-64002 91515
-97099 72526
-19165 32320
-94851 53321
-11044 81516
-30088 31131
-92285 19663
-90624 43676
-54999 90850
-56563 61111
-93006 42621
-77028 44413
-63496 93231
-59288 16304
-19260 82666
-65456 78110
-76020 47590
-71510 78110
-38373 15499
-95329 77350
-81785 15499
-73967 65024
-55970 81128
-75253 51397
-67687 97112
-26178 22355
-31644 43676
-85675 51397
-98065 65775
-47206 22445
-68588 67760
-81859 34895
-81781 96369
-12100 17237
-76959 12327
-62721 92743
-47728 82465
-80148 57620
-36073 81128
-77828 43217
-60402 51397
-20533 67838
-67535 65775
-86024 93819
-45988 74424
-79733 90048
-36916 67049
-91726 78110
-89614 77956
-91991 61361
-48407 44413
-41683 34105
-61197 72068
-23055 75738
-76099 31131
-34782 29960
-79495 96116
-56038 77059
-75701 79362
-90211 35325
-91105 59877
-26571 55619
-70643 23825
-96461 86872
-97211 33461
-83364 41646
-37258 39006
-76258 43478
-77897 78110
-90589 15499
-53899 94756
-59814 91161
-99348 15499
-45978 88916
-21550 44413
-28503 44413
-70361 93856
-38176 77212
-27681 42058
-34616 32695
-63530 77048
-93477 33487
-38551 85570
-30281 56360
-85761 86914
-54185 81927
-34284 21499
-90875 28296
-50159 22467
-73017 44413
-70427 75581
-13241 73319
-43718 84796
-58491 55625
-61676 44413
-59141 99602
-68941 47529
-99683 74769
-11312 96178
-12988 13264
-58625 54979
-38011 19401
-31122 43676
-72187 60980
-83040 16660
-35538 72268
-26926 14779
-20473 71077
-65791 97137
-90431 75263
-44240 65302
-68127 31131
-88606 59555
-82666 84748
-63367 65186
-66772 36723
-34590 91525
-10183 17103
-54013 72306
-88038 86803
-85275 51830
-29557 85444
-91185 61242
-91026 98854
-47846 50418
-58439 13040
-17800 79381
-50614 23120
-20747 99140
-50825 19555
-92963 46049
-86545 64971
-32892 59315
-41415 49777
-52966 15575
-94229 46570
-24717 15057
-90893 73249
-91788 31131
-20609 58936
-83204 92333
-25338 93231
-51397 58936
-93636 88577
-37898 88541
-93231 74087
-74840 87061
-50972 56483
-24441 62016
-45678 16300
-74739 43676
-40860 67689
-30257 10504
-62026 74316
-55422 82666
-78640 31557
-34047 41209
-72688 25384
-71214 58936
-29061 25473
-81733 25169
-30705 54797
-45282 97408
-70052 68168
-85605 83319
-67848 15499
-29579 11173
-21750 37393
-44657 35203
-14712 43246
-66229 51397
-69289 43240
-74346 78110
-63305 48302
-35229 43676
-99323 96098
-17588 81128
-17774 30312
-89787 71712
-41204 73470
-62131 77212
-43849 47590
-39529 83224
-40983 34788
-24893 43702
-45386 94505
-56318 41455
-68530 55855
-25873 42309
-94040 79923
-36153 86545
-88010 54142
-79130 78110
-71226 10679
-29354 70963
-87872 74238
-27909 65520
-99432 27102
-10868 48012
-26181 51794
-11684 81810
-93130 78110
-63372 55575
-78345 69499
-75999 96178
-87508 35360
-79511 85378
-51818 64013
-79942 38589
-84855 88979
-87913 96178
-47101 12601
-50727 16660
-20430 78110
-74052 10988
-63972 58139
-32279 32116
-83960 82666
-57325 44413
-91674 17561
-78735 86390
-72213 15499
-65775 74982
-78046 31131
-92992 19498
-61673 58879
-90012 91669
-73742 23296
-64602 10252
-34277 19600
-38771 62538
-83906 75263
-54798 39169
-48992 86743
-39017 27160
-17400 97272
-48587 46651
-37271 78110
-59764 98477
-63559 55088
-21472 92869
-70180 11171