From 691b06ba78168bb8718429e5d9e937161b3f3347 Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Sat, 30 Nov 2024 21:16:38 -0800 Subject: [PATCH] [2024][ruby][1.x] cleaned up --- 2024/ruby/day_01.rb | 1022 +------------------------------------------ 1 file changed, 14 insertions(+), 1008 deletions(-) diff --git a/2024/ruby/day_01.rb b/2024/ruby/day_01.rb index 546d620..8d9b7cb 100644 --- a/2024/ruby/day_01.rb +++ b/2024/ruby/day_01.rb @@ -1,1014 +1,20 @@ -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 +3 4 +4 3 +2 5 +1 3 +3 9 +3 3