From 77bea7b01ac27a8f0a49b597c049f8542c751939 Mon Sep 17 00:00:00 2001 From: a Date: Sun, 4 Dec 2022 14:21:58 -0600 Subject: [PATCH] 2022 day 1 (eh idk if i wanna do it this year) --- 2022/01/01.ex | 20 + 2022/01/01.py | 12 + 2022/01/input.txt | 2237 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 2269 insertions(+) create mode 100644 2022/01/01.ex create mode 100644 2022/01/01.py create mode 100644 2022/01/input.txt diff --git a/2022/01/01.ex b/2022/01/01.ex new file mode 100644 index 0000000..76232b5 --- /dev/null +++ b/2022/01/01.ex @@ -0,0 +1,20 @@ +{:ok, contents} = File.read("input.txt") +elves = contents + |> String.split("\n\n", trim: true) # Split into elves. + |> Enum.map(fn elf -> elf # For each elf's food, + |> String.split("\n", trim: true) # split into calorie counts. + |> Enum.map(fn calories -> calories # For each calorie count, + |> String.to_integer # convert it to an integer. + end) # We're done with individual counts. + |> Enum.sum # Now add up each elf's calories. + end) # We're done with individual elves. + +_part1 = elves # For part 1, + |> Enum.max # we just want the highest calorie count. + |> IO.inspect + +_part2 = elves # For part 2, + |> Enum.sort # we can sort elves (default low->high) + |> Enum.take(-3) # and take the last 3 (highest 3) calorie counts, + |> Enum.sum # then add up those top 3 elves' calorie counts. + |> IO.inspect diff --git a/2022/01/01.py b/2022/01/01.py new file mode 100644 index 0000000..9e01266 --- /dev/null +++ b/2022/01/01.py @@ -0,0 +1,12 @@ +with open("input.txt", "r") as f: + elves = f.read().split('\n\n') + elf_calories = [] + for elf in elves: + snacks = elf.split('\n') + calories = 0 + for snack in snacks: + calories += int(snack) + elf_calories.append(calories) + elf_calories = sorted(elf_calories, reverse=True) # high -> low + print(f"Part 1: {elf_calories[0]}") # Top elf + print(f"Part 2: {sum(elf_calories[:3])}") # Top 3 elves \ No newline at end of file diff --git a/2022/01/input.txt b/2022/01/input.txt new file mode 100644 index 0000000..1261d9d --- /dev/null +++ b/2022/01/input.txt @@ -0,0 +1,2237 @@ +5557 +6663 +3952 +4750 +2271 +6653 +4406 +4256 +6871 +6720 +6248 +4518 +4987 + +3931 +8484 +8418 +7221 +6057 +7458 +7336 +8299 +5058 + +7862 +4603 +4837 +5209 +1427 +3766 +4454 +3664 +9580 + +6306 +4457 +5653 +4466 +5949 +7420 +2789 +3053 +2060 +4009 +1580 +5870 + +2128 +5160 +6167 +2810 +7342 +7388 +3945 +2653 +4605 +8023 +3736 + +40312 + +8527 +4368 +1291 +1159 +2869 +10302 +8489 + +3268 +4846 +4747 +8406 +4839 +4459 +6374 +3271 +3072 +1600 + +2279 +2628 +4570 +1688 +2989 +6512 +5511 +5544 +1312 +6497 + +32986 +21583 + +5607 +1597 +7704 +6719 +7585 +6676 +1192 +5987 +7336 +2079 +7280 + +4148 + +6518 +7660 +2690 +6461 +7436 +4628 +5750 +5493 +4000 +7290 + +3774 +5553 +2325 +6203 +10506 +7826 +11499 + +6237 +6275 +7370 +6287 +6289 +3980 +2487 +2940 +3886 +5351 +5284 +5486 + +2847 +4282 +1406 +2164 +4119 +2192 +2714 +3284 +3712 +4202 +1970 +4411 +4923 +1388 +5883 + +18803 + +1928 +6016 +6197 +1979 +4905 +7112 +1161 +6888 +1069 +5311 +6516 + +1584 +5300 +12695 +10561 +7101 + +6773 +3213 +1419 +7280 +6258 +3784 +7195 +4572 +1776 +3631 +5141 +5722 + +35830 +12586 + +24120 +7285 +21865 + +8286 +2284 +9964 +6966 +8529 +1732 +7069 +7603 + +2980 +1294 +1763 +1127 +3544 +1944 +2551 +4883 +2383 +4987 +5327 +2181 +5165 + +1271 +3831 +6168 +1025 +4525 +1932 +5048 +1729 +5620 +3160 + +4380 +7712 +1062 +6575 +6162 +4085 +4349 +3289 +7887 +5063 +5381 + +2461 +15992 +18018 +11701 + +5122 +4067 +5335 +1348 +5188 +2544 +5413 +5187 +2936 +5375 +5271 +5428 +5804 +3715 +5431 + +9156 +4489 +1512 +7481 +4781 +2086 +8862 +10687 + +7919 +6487 +1580 +2369 +1676 +1572 +2426 +4760 +2315 +2904 +6901 + +7781 + +4581 +4869 +2229 +6614 +10209 +10156 +8618 +9215 + +4418 +5394 +4140 +11367 +6771 +10724 +1838 + +4086 +3703 +13922 + +6051 +3842 +4012 +4978 +2260 +2208 +2565 +2662 +2407 +3249 +1424 +6033 +2676 +5779 +1890 + +6888 +5074 +2200 +1935 +5163 +4753 +1612 +5907 +2653 +5737 +2015 +1598 +1210 + +6424 +3083 +3843 +3611 +5730 +6310 +1126 +5686 +2632 +6358 +3755 +3578 +6413 +4916 + +3305 +1155 +11374 +7940 +9522 +8508 +7054 + +16430 + +7611 +1656 +5390 +2790 +5899 +3484 +7949 +3770 +1129 +6751 +7018 + +1136 +6501 +1650 +5910 +6188 +6706 +4212 +4210 +6942 +2182 +4581 +1616 +1827 + +6805 +4212 +5129 +6550 +6026 +5586 +1368 +5150 +5532 +2703 +7420 + +4022 +1740 +4549 +5441 +4252 +6012 +4271 +6433 +3891 +4834 +1511 +2557 +2755 + +5021 +4120 +5400 +1420 +1374 +1629 +6026 +5247 +7136 +4684 +2429 +4177 + +1175 + +7380 +37112 + +6602 +6327 +5195 +1177 +1390 +5927 +3491 +6915 +1075 +6057 +1787 +6485 + +2270 +3902 +3708 +9428 +8982 +6407 +7183 +5277 +4268 + +3545 +10390 +13855 +12280 +5499 +11256 + +4933 +4652 +2658 +3954 +6757 +4162 +3830 +4592 +4799 +4038 +5185 +2842 +1254 + +7643 +7897 +10471 +1573 +6236 +3197 + +9201 +12063 +10635 +6938 +8051 +9420 +2378 + +19093 +23159 +1779 + +2571 +1929 +2304 +1288 +3915 +1683 +1267 +2892 +6105 +5699 +2965 +5931 + +6538 +4946 +6944 +2793 +5478 +5918 +4851 +2753 +5589 +3210 +3782 + +2975 +8187 +4221 +5897 +4451 +4712 + +1651 +3396 +4928 +1315 +5059 +2733 +5976 +5712 +5231 +5265 +3382 +6022 +3994 +4624 +1717 + +5932 +4950 +6105 +4468 +2588 +5392 +5155 +3211 +4291 +2685 +1314 +1338 +6323 +1632 + +56490 + +35520 +3508 + +4873 +1896 +3256 +6461 +2819 +4000 +6126 +2677 +1253 +3991 +1797 +1298 +2357 +4919 + +6855 +1235 +2862 +4477 +1979 +1022 +3391 +2991 +5345 +4000 +5014 +3030 +5471 + +11627 + +10096 +2454 +12493 +4138 +4539 +12769 + +7464 +9654 +6701 +8883 +5239 +8018 +1929 +6280 +3452 + +4202 +4306 +1980 +4353 +1857 +1942 +5272 +3635 +3983 +4139 +6300 +5743 +2913 +3140 + +17538 +9430 + +4111 +8312 +5325 +1439 +5521 +8910 +2754 +1723 +3145 + +5619 +2024 +6780 +3535 +5354 +4258 +1842 +6802 +4033 +4872 +4795 +5794 +1247 + +3708 +6991 +24763 + +1336 +1869 +3843 +5305 +5896 +2380 +4354 +8098 +7027 +1600 + +9008 +4226 +5845 +4783 +2981 +13637 + +18048 +34155 + +2158 +2728 +4373 +2168 +5492 +4587 +6183 +5712 +1427 +3765 + +17712 +28932 + +8718 +3165 +8511 +6567 +2194 +4605 +4879 +8336 +7471 + +1083 +4551 +3912 +7798 +5739 +4384 +5966 +4583 +7690 +3910 + +1253 +3778 +3733 +5180 +3134 +3646 +2973 +5935 +5516 +2668 +4114 +4594 +5960 +3004 +3723 + +19271 +6681 +9460 +3291 + +69894 + +8124 +9292 + +1190 +6057 +8065 +2473 +1639 +2271 +1294 +7019 +3245 +7390 + +2785 +4056 +5548 +1566 +2432 +5546 +3348 +4566 +3980 +6329 +2568 +5677 +5419 +4314 + +5412 +11296 +2990 +12309 +12835 +8833 + +5678 +6882 +9550 +1151 +5200 +6760 +5030 +7319 +7920 + +2073 +6640 +13815 +4913 +12031 +3949 + +18529 +23066 +24003 + +4724 +2793 +7348 +1023 +5582 +5407 +7809 +2942 +5853 +5214 +1062 + +4813 +4608 +6199 +6798 +1855 +5642 +5916 +1420 +1583 +2314 +4623 +5471 + +4257 +4250 +5751 +6838 +6563 +2673 +1530 +4960 +3920 +7405 +1075 +4059 + +3381 +4158 +4751 +2209 +6659 +4780 +1008 +2774 +6275 +2996 +4533 +5304 + +3392 +1384 +5534 +2962 +2771 +3970 +4395 +2863 +6683 +1273 +6858 +2139 +6957 + +5467 +4223 +6720 +6441 +2238 +1533 +5809 +4655 +2969 +4292 +6337 +3154 +3836 + +2802 +1318 +4028 +4453 +5955 +6470 +5629 +3499 +1961 +5072 +2276 +3481 +4052 +6396 + +7524 +1036 +8480 +3074 +5500 +6945 +5897 +6492 +7556 +5640 + +7230 +14327 +7415 +6350 +4860 + +1466 +7043 +3529 +12211 +12412 +11492 + +3369 +4999 +1374 +6342 +2802 +2941 +3900 +5964 +3642 +2175 +5622 +5425 +5800 + +2979 +3672 +5333 +4098 +3021 +1424 +1679 +5424 +1745 +4265 +1841 +2716 +5306 + +11005 +5937 +12008 +4420 +5637 +10592 + +9308 +3108 +13264 +8125 +13257 +11024 + +9574 +7475 +5550 +12130 +4270 +3221 +5813 + +4020 +4074 +2895 +2349 +2640 +2079 +1038 +8085 +7173 +5863 +5685 + +2858 +4323 +2796 +5877 +7113 +2333 +7167 +8064 +4286 +1268 +1710 + +5905 +4123 +5583 +6104 +2763 +5274 +4808 +1760 +6606 +6691 +5051 +1526 +4290 + +5639 +5851 +5677 +1499 +3865 +3502 +1869 +5608 +2214 +3805 +3046 +5680 +2425 +4423 +2620 + +10292 +24730 +25190 + +7576 +8485 +6945 +10024 +3448 +2799 +8338 +7638 + +1128 +6102 +2641 +4500 +4154 +1560 +2226 +4152 +6451 +1335 +2606 +2257 +4248 +1927 + +1798 +9671 +5368 +8742 +1124 +5578 + +1970 +3725 +2771 +3582 +2632 +6142 +2579 +2146 +2388 +2269 +4118 +6112 +1737 + +4635 +2925 +4434 +6757 +10349 +12954 + +13448 +6825 +10103 +1056 +5495 +11490 + +7494 +8483 +8060 +2450 +5281 +6389 +4832 +4009 +8451 + +34284 + +1603 +5707 +4767 +5658 +4811 +4826 +5170 +5817 +3597 +5636 +2812 +4373 +2901 +1307 + +1486 +13828 +9856 +11238 +8720 +2019 + +6235 +3218 +2243 +3504 +1922 +2448 +5649 +5571 +5321 +5896 +5801 +3298 + +16648 +2946 +7150 +15822 + +4082 +6361 +7159 +7250 +3244 +4956 +2497 +3582 +5322 +6447 +5371 +2097 + +3697 +6605 +5261 +1991 +6182 +5617 +2118 +7340 +5825 +2862 +1702 + +4314 +4229 +2169 +6275 +3786 +1121 +6957 +1337 +1332 +4989 +1844 +2178 +5812 + +15539 +2282 +15518 +9604 +5838 + +27639 + +3214 +4879 +3533 +2352 +7107 +5906 +8017 +5251 +5414 +5382 +3647 + +2692 +33924 + +3209 +2672 +5418 +1903 +3886 +4947 +1776 +1235 +1591 +1239 +5098 +3302 +6063 +2818 + +13709 + +7734 +7653 +4415 + +1666 +8435 +4478 +1519 +6902 +1635 +7825 + +6651 +1576 +4934 +3478 +3321 +2203 +6682 +4807 +7456 +3215 +1489 +2297 + +7800 +3507 +2392 +7693 +6398 +8654 +1700 +6329 +6906 +4895 + +6724 +13961 +9520 +9359 +13472 + +6652 +14619 +8763 +9602 +16258 + +1241 +4308 +2894 +4673 +1527 +6369 +5143 +3759 +1870 +5124 +3588 +6547 +2498 + +1791 +7613 +3504 +2538 +3030 +5815 +2233 +5444 +2441 +1007 +3379 + +3552 +4921 +4066 +3719 +5667 +4850 +1634 +3690 +1119 +4882 +2004 +5276 +3094 +4641 +2747 + +12424 +6884 +14048 +14023 +1167 + +14032 +10399 +15054 + +36358 +1107 + +1571 +2482 +4176 +4617 +1345 +2409 +4293 +2630 +5182 +5619 +2478 +1867 +5272 +4378 +3740 + +7622 +8215 +3888 +6528 +4642 +5321 +4188 +3362 +4888 +7881 + +10689 +9236 +8990 +5172 +3808 +12090 +4886 + +13681 +18086 +7314 +2323 + +7660 +4072 +5256 +7493 +9843 +4037 + +25993 +4860 +1582 + +6486 +2017 +3122 +1325 +4295 +4719 +2723 +5058 +3755 +3442 +5051 +5075 +4872 + +4914 +10902 +15299 +8897 + +1127 +4276 +1756 +5614 +1418 +5097 +1592 +1895 +7080 + +2115 +2568 +1336 +3705 +3724 +1700 +1609 +1828 +2414 +4237 +2338 +6012 +3032 +2218 +2208 + +8849 +8568 +6400 +8410 +4368 +8764 +1427 +4127 +4178 + +30490 +4142 + +2030 +5111 +5745 +8679 +1943 +8202 +1285 +7558 +4016 +1522 + +5831 +3090 +4335 +1437 +4821 +2113 +5094 +5944 +4673 +2596 +3864 +5259 +1871 +1608 + +2199 +1764 +5142 +6643 +7190 +4835 +6581 +1405 +1658 +3792 +2250 +6073 + +3870 +2483 +3951 +4182 +5446 +2685 +1091 +3962 +1047 +1610 +1527 +3222 +1911 +5104 + +5426 +4663 +6726 +3699 +3174 +3624 +5484 +5948 +1354 +1236 +5775 +7090 + +3546 +3444 +1385 +4869 +2456 +4604 +4077 +3552 +7176 +6813 +6997 +2902 + +1677 +13997 + +5167 +5967 +8185 +2651 +3727 +4484 +6003 +5162 +4850 + +5218 +6379 +4277 +1597 +7423 +1074 +8715 +8456 +7021 +2336 + +8958 +8689 +4334 +1060 +9038 +3588 +9339 +8979 +3346 + +2575 +6747 +7542 +2648 +5594 +3696 +8934 +1751 + +6196 +6698 +6136 +2850 +8180 +4098 +2881 + +5732 +25560 +17361 + +2901 +1622 +6652 +5704 +1146 +7084 +7118 +3471 +1666 + +2406 +6393 +2230 +3030 +4327 +7405 +2547 +5892 +7341 +1722 +1612 +3218 + +6903 +8864 +7636 +5110 +8870 +1217 +2648 +3657 +5840 + +5989 +16071 +2219 +11769 +8755 + +1648 +2098 +2757 +8375 +8655 +4497 +7677 +8314 +3619 + +5323 +5392 +6638 +7142 +3855 +7531 +8756 +5909 +2428 + +5567 +9816 +10210 +9465 +9301 +6144 +10073 +9933 + +16283 +11551 +16041 +2127 +3410 + +6921 +6847 +6005 +2213 +6929 +3604 +3729 +2111 +2870 +5211 +2879 +3116 +4096 + +4863 +2555 +6330 +5701 +4633 +5732 +5706 +3555 +4386 +6518 +4218 +6123 + +13295 +12444 +4812 +3646 +3392 +4269 + +4394 +3424 +4545 +3162 +5525 +5268 +4625 +6719 +3657 +5607 +3709 +6378 +1544 + +54079 + +11984 + +6538 +6184 +5782 +3642 +7797 +6854 +4210 +3231 +5819 +3244 +8018 + +1558 +17824 +9560 +16295 + +1208 +5757 +5575 +4905 +4640 +4377 +1847 +3419 +4671 +3182 +6184 +2672 + +8700 +7999 +6570 +3211 +4908 +1469 +5401 +4840 +2924 +2854 + +2166 +17731 + +1535 +2635 +3175 +2678 +1217 +4326 +3518 +1611 +6389 +7438 +2615 +3146 + +5043 +5895 +1419 +1226 +2417 +2537 +1698 +5144 +5937 +2387 +4113 +3673 +1124 +5076 +3166 + +3098 +4831 +5860 +2784 +3187 +5113 +2336 +2667 +5178 +3327 +6020 +5811 +5782 + +7997 +5018 +2443 +7044 +7292 +3564 +10170 +8878 + +5202 +4184 +2615 +1187 +3642 +3379 +3477 +5152 +1712 +2903 +2769 +3805 +1979 +4902 +1198 + +5861 +1860 +8082 +2990 +5096 +6764 +3090 +5473 +2580 +1452 + +4315 +6801 +1335 +2474 +3566 +3067 +5804 +4057 +5492 +2849 +6533 +4677 +2386 + +18899 +5787 + +8958 +1159 +11750 +2269 +5522 +4240 + +3265 +2730 +5316 +6167 +4144 +1824 +2753 +2016 +1286 +1999 +6176 +4520 +1521 +2450 + +7213 +13737 +13559 +1264 +10959 +4193 + +13793 +2804 +2170 +3728 +6751 +3108 + +3104 + +10079 +8735 + +6035 +8147 +6401 +6153 +4028 +9294 +6355 +8167 +3844 + +6599 +6319 +4326 +8388 +1409 +2321 +7996 +3887 +6073 +2778 + +2849 +5674 +1635 +2067 +8804 +7444 +4775 +1568 +6278 + +6823 +7466 +1008 +6783 +6258 +6584 +8655 +8072 +3086 + +6043 +12126 +11498 +1832 +10190 +1530 +2192 + +1614 +2820 +9718 +4461 +10396 +3606 +2481 + +6036 +7966 +6674 +3059 +7310 +1138 +1974 +5574 +2907 +7896 + +9037 +3659 +4092 +6191 +1896 +1986 +5991 +2290 +5726 + +4208 +5969 +3220 +3588 +8793 +2797 +7843 +5187 + +8513 +10633 +2236 +6997 +5444 +1620 +1021 +10020 + +7180 +4727 +8226 +7912 +5481 +7611 +8852 +8035 +3168 + +37280 + +1710 +5518 +3890 +2648 +3111 +5237 +3741 +5613 +7738 +3520 +4885 + +17182 +11752 +23068 + +6680 +4747 +4916 +6825 +1181 +6707 +1076 +2361 +3399 +4805 +1663 +3463 +4772 + +35202 +20846 + +10406 +11741 +16051 +1157 +7483 + +2827 +3431 +3324 +1781 +5418 +3182 +4725 +1022 +5403 +6308 +5990 +3219 +1495 + +6314 +3800 +4825 +5057 +4397 +4182 +8213 +8160 +7795 +1063 + +13147 + +42635 + +7219 +2962 +4108 +2347 +4155 +8715 +1685 +6921 +2164 + +15675 +3583 +12653 +14222 +3991 + +2363 +7410 +2143 +1091 +6713 +1412 +1099 +2242 +7544 +4937 + +15772 +10228 +1020 +10845 + +3682 +4323 +11915 +10229 +11727 +5173 + +3365 +4295 +5082 +13629 +4173 +5848 + +4324 +1921 +6222 +3428 +6022 +2250 +1170 +5026 +5168 +1261 +6274 +6142 +1250 + +2571 +8209 +2334 +4244 +4228 +10666 +9860 + +5584 +4728 +3012 +5794 +2321 +5837 +1252 +5151 +4842 +3557 +1980 +2061 +2743 + +3604 +1299 +4017 +6001 +6568 +3675 +8039 +7628 +5977 +6430 +6212 + +16156 +22045 +25960 + +11109 +26000 +8491 + +6540 +6302 +6140 +1644 +4311 +1184 +2320 +2920 +1251 +2939 +5130 +2011 +2711 + +1667 +3628 +9498 +1778 +8394 +9324 +5849 +10744 + +3036 +2127 +5374 +5864 +2650 +4093 +2326 +2657 +4305 +3766 +4749 +2265 +5303 +5515 +1109 + +1443 +4494 +14241 +15696 +6478 + +5404 +1527 +9780 +9950 +5559 +8421 +1375 + +16733 +10347 +14682 + +2913 +3592 +3393 +7007 +2276 +2047 +1320 +7350 +7874 +7183 +3394 + +25380 +25324 +16859 + +7300 +3697 +4423 +4902 +3917 +4646 +2016 +4472 +6660 + +6756 +5563 +2641 +6879 +5437 +1179 +4055 +2195 +2732 +1254 +3605 +4191 +1482 \ No newline at end of file