this repo has no description
at master 6.5 kB view raw
1<!-- livebook:{"persist_outputs":true} --> 2 3# Day 01 4 5```elixir 6Mix.install([:kino_aoc]) 7``` 8 9## Section 10 11<!-- livebook:{"attrs":"eyJhc3NpZ25fdG8iOiJwdXp6bGVfaW5wdXQiLCJkYXkiOiIxIiwic2Vzc2lvbl9zZWNyZXQiOiJBRFZFTlRfT0ZfQ09ERV9TRVNTSU9OIiwieWVhciI6IjIwMjQifQ","chunks":null,"kind":"Elixir.KinoAOC.HelperCell","livebook_object":"smart_cell"} --> 12 13```elixir 14{:ok, puzzle_input} = 15 KinoAOC.download_puzzle("2024", "1", System.fetch_env!("LB_ADVENT_OF_CODE_SESSION")) 16``` 17 18<!-- livebook:{"output":true} --> 19 20``` 21{:ok, 22 "28186 35627\n51854 34597\n19211 51032\n79370 53096\n68126 40302\n43284 25771\n80565 99650\n83151 70796\n91092 74579\n70740 98650\n45166 53096\n24309 45165\n62950 26641\n23291 91017\n56683 53851\n22308 81625\n83150 34155\n87443 91017\n56834 91784\n35159 67595\n10722 83450\n92257 23419\n15995 96671\n89901 39216\n25104 76669\n37075 56652\n15874 66083\n33493 35627\n87420 31838\n11269 91386\n92604 83450\n34888 99650\n49759 40926\n38211 27379\n93866 22096\n88205 66217\n55772 60776\n83556 78255\n22292 50829\n22487 78358\n27260 79702\n74570 90319\n27532 14353\n40720 67595\n99885 65688\n25733 53752\n12466 14411\n88402 40165\n63328 13804\n45165 62461\n24913 94225\n32251 76669\n91004 40165\n48939 45165\n98082 34561\n74569 42932\n99641 54600\n42748 22021\n23376 54490\n38706 69865\n64985 87783\n14431 78715\n37671 94814\n27425 60776\n21801 76669\n96975 33493\n56680 31838\n41265 71129\n99081 32487\n53077 82615\n54490 55624\n22649 60776\n82601 25943\n93133 96412\n77182 78358\n67827 76838\n45976 89107\n20352 89034\n28891 23800\n87739 76669\n47802 99650\n18060 28437\n65882 93980\n53343 13764\n84301 93604\n62547 93479\n79067 45165\n70139 54490\n28158 76669\n71631 39775\n36521 57540\n78928 37888\n75943 39076\n28462 60107\n95828 94225\n49768 73181\n40545 97945\n18963 74260\n17934 63046\n73054 13454\n43170 60924\n90257 28180\n99765 33493\n41380 50296\n24225 62945\n66579 73961\n73361 54622\n26339 91017\n84080 62041\n89322 54600\n84610 18344\n58420 87051\n12253 83450\n25631 91017\n71764 63533\n52908 40165\n56578 46636\n99876 61946\n43934 64469\n78242 11111\n97629 28916\n21477 91017\n97639 64456\n90978 53077\n94412 73836\n49249 96113\n92750 14411\n12961 13764\n84319 22230\n83435 78146\n48951 86109\n40258 13764\n54600 65577\n51432 53096\n11527 20394\n68196 94225\n14939 91017\n13158 39216\n62120 93587\n20939 71764\n58436 28038\n37198 31838\n59152 17554\n52958 44145\n64236 18285\n63763 56578\n40304 99650\n86564 78910\n45684 52760\n43139 61946\n99974 76669\n44698 86004\n19940 22021\n29106 78358\n60431 91386\n50880 76451\n96595 42193\n40966 73961\n64515 61946\n31081 39834\n87614 70892\n82663 54622\n73537 62994\n14125 56652\n51361 35627\n26084 35817\n82915 20069\n72409 22021\n22834 20071\n93476 83787\n63719 53096\n41505 48056\n56055 20404\n37255 99650\n33468 60776\n70472 22598\n66290 53077\n91071 67595\n30888 33173\n60826 29871\n12334 78358\n62744 69424\n85449 79500\n22333 16295\n67621 18455\n12605 90059\n32490 25835\n96639 75870\n82412 39747\n76964 60153\n60776 60776\n68837 39216\n35635 67595\n85239 14964\n15278 83450\n63581 35178\n77006 18285\n88570 80424\n61499 81689\n57466 47392\n78524 84304\n11821 53989\n62425 28916\n36264 50872\n38567 13061\n16357 45165\n17202 94451\n64290 31838\n76075 55071\n87325 40165\n93961 99650\n49866 65601\n91725 14411\n44721 18285\n44065 33493\n22521 56578\n28070 54600\n45621 54600\n54677 26913\n79647 24298\n89613 31415\n86493 13764\n16243 64218\n12832 21187\n43847 35189\n75859 54600\n69276 75826\n43251 14411\n96012 41446\n35482 35817\n45380 82383\n66801 31838\n79199 92341\n33087 70511\n40619 28916\n67655 80670\n22431 60776\n62731 54622\n29873 25771\n99354 63481\n36415 61946\n29742 94919\n64872 53077\n93028 55635\n32784 18285\n87488 68734\n56652 18285\n49968 80712\n82653 53096\n30377 24784\n40120 45165\n88404 70120\n69179 45165\n99645 67595\n44883 45165\n76320 43595\n29057 90019\n28502 61946\n73459 84304\n96354 54622\n77589 14301\n51381 54490\n40490 95808\n36023 27135\n13434 63807\n27250 35627\n13764 32845\n28229 34954\n56430 76669\n98593 63811\n11192 60776\n81601 72265\n86908 77116\n25484 82383\n31115 42206\n75124 70148\n96785 53096\n59814 85995\n17024 57255\n81701 41971\n43938 33493\n91646 33599\n96616 81828\n73270 87775\n75876 35817\n53007 83450\n39527 33975\n35936 17039\n95194 23302\n96876 80147\n68136 91386\n31253 19760\n98767 " <> ...} 23``` 24 25```elixir 26{left, right} = 27puzzle_input 28|> String.split("\n", trim: true) 29|> Enum.map(fn line -> 30 line 31 |> String.split(" ", trim: true) 32 |> Enum.map(&String.to_integer/1) 33 |> List.to_tuple() 34end) 35|> Enum.unzip() 36``` 37 38<!-- livebook:{"output":true} --> 39 40``` 41{[28186, 51854, 19211, 79370, 68126, 43284, 80565, 83151, 91092, 70740, 45166, 24309, 62950, 23291, 42 56683, 22308, 83150, 87443, 56834, 35159, 10722, 92257, 15995, 89901, 25104, 37075, 15874, 33493, 43 87420, 11269, 92604, 34888, 49759, 38211, 93866, 88205, 55772, 83556, 22292, 22487, 27260, 74570, 44 27532, 40720, 99885, 25733, 12466, 88402, 63328, ...], 45 [35627, 34597, 51032, 53096, 40302, 25771, 99650, 70796, 74579, 98650, 53096, 45165, 26641, 91017, 46 53851, 81625, 34155, 91017, 91784, 67595, 83450, 23419, 96671, 39216, 76669, 56652, 66083, 35627, 47 31838, 91386, 83450, 99650, 40926, 27379, 22096, 66217, 60776, 78255, 50829, 78358, 79702, 90319, 48 14353, 67595, 65688, 53752, 14411, 40165, ...]} 49``` 50 51## Part 1 52 53```elixir 54left 55|> Enum.sort() 56|> Enum.zip_with(Enum.sort(right), &abs(&1 - &2)) 57|> Enum.sum() 58``` 59 60<!-- livebook:{"output":true} --> 61 62``` 631603498 64``` 65 66## Part 2 67 68```elixir 69freq_left = Enum.frequencies(left) 70freq_right = Enum.frequencies(right) 71 72freq_left 73|> Enum.map(fn {id, n} -> id * n * Map.get(freq_right, id, 0) end) 74|> Enum.sum() 75``` 76 77<!-- livebook:{"output":true} --> 78 79``` 8025574739 81``` 82 83<!-- livebook:{"offset":6294,"stamp":{"token":"XCP.Sz2iSQavADDpvtEa1kPPKXU2FJX4whRA8o-9s7dVkXuAtZgcWAfkz84tbAfwi7Uwo2ZHGidQtTuQgV-kqNBK-CR04hZZSMuvCDJWvO3n-0VLRe9_gxnirhNs2i3h2ydu0JE","version":2}} -->