From a215df0b0444e23f18f0ccba1bfe01a19e7cf1ac Mon Sep 17 00:00:00 2001 From: vikingowl Date: Wed, 11 Dec 2024 20:11:23 +0100 Subject: [PATCH] updated Day01 to use original input provided by adventofcode --- Day01/input.json | 2006 ---------------------------- Day01/input.txt | 1000 ++++++++++++++ Day01/optimized.go | 78 +- Day01/original.go | 33 +- template/{input.json => input.txt} | 0 5 files changed, 1067 insertions(+), 2050 deletions(-) delete mode 100644 Day01/input.json create mode 100644 Day01/input.txt rename template/{input.json => input.txt} (100%) diff --git a/Day01/input.json b/Day01/input.json deleted file mode 100644 index 2046e94..0000000 --- a/Day01/input.json +++ /dev/null @@ -1,2006 +0,0 @@ -{ - "list_a": [ - 99006, - 38540, - 18133, - 70780, - 38316, - 61729, - 57462, - 91153, - 76573, - 76155, - 24171, - 10666, - 73383, - 86077, - 40710, - 58326, - 67654, - 64826, - 70235, - 66149, - 24077, - 46497, - 78959, - 49339, - 54141, - 96148, - 60258, - 23099, - 41307, - 65974, - 40769, - 65277, - 20836, - 12863, - 30718, - 65114, - 46146, - 14591, - 99705, - 64713, - 18767, - 50856, - 19757, - 89557, - 54062, - 69386, - 91224, - 68269, - 47118, - 49799, - 42535, - 69994, - 52436, - 24596, - 86843, - 96155, - 25680, - 10905, - 73049, - 35651, - 13185, - 47380, - 11526, - 22640, - 28081, - 91214, - 70299, - 69491, - 14166, - 44639, - 39531, - 29197, - 97941, - 89154, - 74726, - 42065, - 67812, - 17072, - 73245, - 11680, - 68304, - 98762, - 51469, - 93672, - 19665, - 16645, - 58364, - 92331, - 97903, - 86845, - 50676, - 75338, - 87166, - 89047, - 33371, - 90980, - 92511, - 47738, - 81003, - 87425, - 86444, - 24802, - 26115, - 89747, - 46823, - 70790, - 45381, - 71680, - 56603, - 20721, - 54715, - 70245, - 95000, - 61672, - 69277, - 18422, - 89751, - 82454, - 18812, - 12403, - 51380, - 70840, - 56957, - 80981, - 42793, - 40184, - 75791, - 54948, - 25442, - 88023, - 34476, - 73955, - 40956, - 59337, - 84175, - 61172, - 20032, - 11394, - 89416, - 58763, - 71522, - 41390, - 89374, - 45927, - 13265, - 19150, - 82687, - 44626, - 44561, - 97948, - 14766, - 38684, - 74001, - 75864, - 65366, - 53729, - 90293, - 37726, - 70804, - 10158, - 46905, - 71830, - 26957, - 62648, - 16278, - 72223, - 68493, - 63124, - 39953, - 46199, - 51574, - 56997, - 15042, - 29355, - 32667, - 91910, - 45361, - 57209, - 21891, - 69835, - 94443, - 55059, - 15688, - 32147, - 86293, - 34923, - 44962, - 82598, - 40003, - 13023, - 27866, - 67002, - 91012, - 66044, - 33331, - 83739, - 46420, - 94463, - 89002, - 11437, - 22418, - 21411, - 32217, - 88031, - 35905, - 35647, - 51955, - 74030, - 81468, - 43969, - 46194, - 85098, - 19106, - 39507, - 49298, - 46755, - 65761, - 77565, - 99407, - 71358, - 40988, - 15235, - 85560, - 22336, - 30214, - 33528, - 65883, - 28514, - 54235, - 40814, - 30738, - 23352, - 74158, - 74379, - 13703, - 65060, - 98105, - 63511, - 14335, - 95359, - 88133, - 95532, - 51153, - 14718, - 13804, - 91397, - 43643, - 76512, - 64507, - 56558, - 94652, - 80650, - 56524, - 97034, - 78284, - 63253, - 70398, - 20457, - 38983, - 80593, - 32158, - 15099, - 78903, - 62941, - 11803, - 49738, - 27243, - 93339, - 68583, - 46703, - 66461, - 50187, - 15890, - 52412, - 88293, - 44630, - 85179, - 52028, - 84567, - 19950, - 51147, - 34362, - 83960, - 17612, - 44656, - 33483, - 51670, - 96300, - 95240, - 21850, - 52441, - 32254, - 68525, - 74508, - 80323, - 65300, - 24288, - 66066, - 16209, - 29819, - 74036, - 62630, - 34134, - 46966, - 73363, - 95916, - 21327, - 37034, - 80617, - 24686, - 25133, - 93810, - 68870, - 38845, - 41953, - 76876, - 20112, - 91690, - 12865, - 35744, - 49085, - 86030, - 88533, - 43415, - 34986, - 99785, - 91725, - 30670, - 94247, - 96381, - 59252, - 17282, - 45938, - 79072, - 55769, - 78572, - 87331, - 60162, - 71125, - 40031, - 52638, - 44289, - 63865, - 18898, - 95301, - 22055, - 53205, - 28323, - 90363, - 89953, - 73798, - 45863, - 98470, - 71795, - 33778, - 98946, - 21994, - 30707, - 51523, - 71441, - 33909, - 10691, - 29496, - 42230, - 68830, - 79249, - 44218, - 79729, - 32224, - 30279, - 38608, - 45483, - 32047, - 70586, - 76474, - 32742, - 98317, - 42335, - 65316, - 81775, - 96023, - 12721, - 73700, - 79390, - 90694, - 91565, - 86422, - 92810, - 74624, - 68037, - 28396, - 89780, - 30962, - 23460, - 77012, - 21031, - 66950, - 65128, - 28012, - 57394, - 98281, - 77495, - 74936, - 91250, - 91241, - 91314, - 88290, - 20940, - 94073, - 27646, - 60072, - 24487, - 93468, - 34827, - 42629, - 72808, - 67231, - 47920, - 95716, - 14507, - 38335, - 59119, - 27496, - 49592, - 59259, - 14976, - 32138, - 49659, - 11006, - 27301, - 59332, - 91052, - 63614, - 13512, - 85275, - 19247, - 40663, - 92257, - 68520, - 87435, - 59634, - 48762, - 37318, - 49411, - 34658, - 35706, - 93123, - 17924, - 87196, - 57740, - 22830, - 51620, - 75848, - 14772, - 18592, - 66676, - 44102, - 47056, - 86148, - 40518, - 41596, - 78037, - 35795, - 18723, - 93797, - 97671, - 23699, - 97919, - 16785, - 62616, - 15930, - 82441, - 32656, - 77413, - 72752, - 25097, - 19543, - 75318, - 19415, - 20997, - 35202, - 72538, - 44842, - 28326, - 17462, - 42990, - 20421, - 17182, - 49471, - 31823, - 90999, - 52439, - 47746, - 50990, - 26573, - 38712, - 69067, - 36559, - 81690, - 52850, - 82635, - 76405, - 78056, - 77790, - 97566, - 91451, - 30371, - 31553, - 40103, - 96713, - 72241, - 21177, - 36285, - 60819, - 89533, - 52878, - 98899, - 21739, - 52895, - 24760, - 61257, - 59243, - 83626, - 73327, - 89469, - 38452, - 91111, - 19932, - 23814, - 11228, - 90008, - 71262, - 75116, - 21556, - 67613, - 18819, - 16596, - 60189, - 91775, - 82183, - 82671, - 27814, - 56740, - 23120, - 57467, - 46686, - 75851, - 43651, - 97125, - 49136, - 91337, - 94434, - 32403, - 41731, - 27543, - 74801, - 14902, - 99047, - 66749, - 76240, - 72198, - 95888, - 32500, - 86753, - 15649, - 56086, - 15311, - 37803, - 53060, - 51967, - 17354, - 10055, - 34244, - 21231, - 59489, - 13639, - 34062, - 83983, - 93647, - 53687, - 70194, - 98944, - 13991, - 87843, - 74448, - 52799, - 75944, - 42844, - 96272, - 17838, - 26081, - 45724, - 47237, - 21228, - 35856, - 93591, - 61212, - 61062, - 96064, - 75537, - 44059, - 81622, - 50667, - 97084, - 13169, - 57322, - 12130, - 82114, - 54596, - 47748, - 24302, - 39283, - 44310, - 82822, - 79286, - 78155, - 26900, - 97801, - 62797, - 80367, - 52103, - 43130, - 28888, - 73180, - 82035, - 25627, - 10869, - 37552, - 84907, - 34645, - 61338, - 83990, - 11269, - 79295, - 43221, - 86001, - 34108, - 95413, - 19964, - 82521, - 60781, - 57794, - 12298, - 84216, - 36509, - 82594, - 32516, - 50254, - 35816, - 60865, - 61952, - 53399, - 77087, - 96779, - 13853, - 22933, - 58086, - 21436, - 50170, - 86579, - 26267, - 77545, - 43670, - 21175, - 87781, - 52791, - 48617, - 96403, - 67474, - 98932, - 46899, - 79574, - 30104, - 76149, - 70412, - 33000, - 59971, - 88217, - 15130, - 56015, - 54238, - 35684, - 88659, - 40206, - 81346, - 35433, - 84398, - 64460, - 32488, - 77815, - 61406, - 93879, - 33472, - 86621, - 31585, - 92665, - 51965, - 99377, - 20257, - 79455, - 44861, - 94931, - 34821, - 34053, - 35378, - 99445, - 30344, - 68931, - 57795, - 51592, - 52107, - 44792, - 81960, - 93395, - 53268, - 30699, - 44246, - 71363, - 84318, - 50198, - 58232, - 76277, - 22162, - 77444, - 77344, - 84109, - 64076, - 56650, - 69278, - 78847, - 81571, - 44644, - 90621, - 59174, - 43079, - 46349, - 69355, - 67085, - 66194, - 91560, - 96434, - 57896, - 12385, - 13553, - 39494, - 33031, - 84179, - 76823, - 78648, - 49568, - 13913, - 13779, - 19801, - 53472, - 54951, - 78858, - 33043, - 66269, - 69674, - 56156, - 15052, - 74147, - 16337, - 57835, - 35937, - 79379, - 37535, - 48559, - 72941, - 13143, - 98319, - 21984, - 52205, - 37942, - 30925, - 85946, - 29975, - 16606, - 10354, - 43214, - 75801, - 85088, - 23246, - 14264, - 97821, - 90143, - 43233, - 19501, - 62214, - 70520, - 98507, - 57062, - 19520, - 45602, - 22321, - 58654, - 40844, - 99926, - 27878, - 92982, - 24451, - 24960, - 78368, - 73870, - 64409, - 68720, - 84679, - 85561, - 61418, - 23592, - 79447, - 79307, - 43133, - 67547, - 25054, - 18090, - 42348, - 53062, - 12477, - 32590, - 43150, - 90232, - 54157, - 10397, - 40228, - 10069, - 82220, - 51061, - 24569, - 92802, - 21675, - 55904, - 32060, - 99313, - 64724, - 41313, - 92841, - 48903, - 32705, - 29306, - 12758, - 92611, - 37798, - 72934, - 17322, - 31246, - 42506, - 91039, - 41966, - 37154, - 80080, - 25042, - 63465, - 51158, - 71697, - 68447, - 59005, - 72699, - 77876, - 32324, - 80836, - 79063, - 92346, - 98008, - 52358, - 61687, - 19947, - 57697, - 81721, - 46459, - 25740, - 78645, - 80369, - 33120, - 86551, - 79500, - 87802, - 96810, - 63959, - 36968, - 56795, - 12699, - 80955, - 54674, - 89734, - 56820, - 33215, - 51005, - 54487, - 40303, - 89364, - 99804, - 47249, - 13318, - 71579, - 42237, - 10936, - 94920, - 97531, - 55195, - 37609, - 32421, - 86247, - 75761, - 92502, - 24793, - 79928, - 61966, - 54823, - 12390, - 98087, - 28305, - 11694, - 25773, - 10237, - 53818, - 90140, - 16877, - 70440, - 20425, - 31119, - 64934, - 41053, - 59199, - 96208, - 47865, - 72676, - 36328, - 87171, - 33085, - 29549, - 16365, - 21309, - 78146, - 77480, - 33026, - 78593, - 51671, - 24897, - 66982, - 10601, - 90805, - 98801, - 69006, - 87117, - 51999, - 69463, - 79838, - 87352, - 70793, - 65518, - 63083, - 14321, - 71218, - 68794, - 61356, - 29130, - 50008, - 75342, - 22229, - 43553, - 56266, - 26755, - 43604, - 69206, - 83729, - 97816, - 74873, - 96518, - 26091, - 35139, - 77138, - 63035, - 90356, - 64708, - 68272, - 87370, - 81179, - 91200, - 68973, - 44889, - 56893, - 28208, - 16017, - 33656, - 95864, - 85836, - 94113, - 38652, - 59247, - 64534, - 83964, - 15724, - 55105, - 13237, - 34736, - 95583, - 34797, - 47199, - 20631 - ], - "list_b": [ - 28305, - 91683, - 49738, - 13081, - 55879, - 73383, - 59629, - 56589, - 52850, - 36285, - 76277, - 30707, - 93797, - 24033, - 50187, - 65150, - 30707, - 52850, - 11694, - 71125, - 19630, - 93335, - 47746, - 29442, - 95451, - 29849, - 88293, - 57809, - 66225, - 82114, - 84109, - 79459, - 39953, - 96208, - 30707, - 50745, - 36285, - 81775, - 90954, - 86029, - 78959, - 44136, - 47746, - 74726, - 80955, - 30707, - 49972, - 75801, - 94704, - 57324, - 91397, - 50187, - 94924, - 56660, - 95067, - 75541, - 75049, - 30636, - 91039, - 82698, - 61356, - 49738, - 78959, - 17601, - 24121, - 38947, - 56815, - 64519, - 11598, - 11827, - 65456, - 97770, - 39589, - 67313, - 62661, - 57417, - 40982, - 26967, - 20609, - 79249, - 94322, - 25205, - 55108, - 47746, - 81775, - 69048, - 31379, - 50187, - 65233, - 79249, - 93797, - 48071, - 34605, - 94911, - 43535, - 44540, - 54481, - 98087, - 30707, - 53074, - 36285, - 51147, - 76277, - 63773, - 81775, - 54357, - 40553, - 21755, - 12660, - 25637, - 73383, - 32502, - 47746, - 49279, - 80955, - 20285, - 24379, - 81055, - 71141, - 50187, - 52850, - 30006, - 80955, - 75183, - 45433, - 68802, - 61356, - 15120, - 67654, - 11694, - 29242, - 43439, - 31785, - 60125, - 16414, - 79249, - 96208, - 97531, - 73030, - 39442, - 96208, - 29669, - 91039, - 12473, - 75801, - 40228, - 11428, - 49738, - 79249, - 51147, - 15646, - 16481, - 52850, - 40844, - 71125, - 67654, - 52850, - 97531, - 85744, - 95339, - 21771, - 22746, - 30707, - 69687, - 15961, - 84109, - 27071, - 14353, - 61356, - 93853, - 11750, - 83594, - 93797, - 85961, - 81775, - 96117, - 90326, - 42508, - 82114, - 36285, - 91397, - 40228, - 87731, - 88293, - 69781, - 63879, - 23951, - 96035, - 76078, - 81775, - 11694, - 88124, - 77163, - 48243, - 56996, - 40228, - 37353, - 32287, - 11694, - 89879, - 47746, - 15950, - 84109, - 28305, - 13458, - 65548, - 40377, - 74726, - 75864, - 88293, - 82114, - 86085, - 76277, - 81364, - 88422, - 75801, - 78300, - 69583, - 22393, - 75801, - 49738, - 49799, - 82033, - 50187, - 76277, - 47746, - 73396, - 43873, - 49621, - 84109, - 61805, - 88293, - 76277, - 75470, - 24883, - 51147, - 12843, - 82603, - 55075, - 82342, - 61356, - 43253, - 75098, - 62422, - 98736, - 49738, - 47746, - 75864, - 68412, - 50187, - 62259, - 42322, - 75908, - 70538, - 49799, - 17703, - 91039, - 87050, - 60522, - 79249, - 98087, - 13939, - 12907, - 80063, - 11694, - 37998, - 61846, - 79646, - 81203, - 84109, - 76277, - 98087, - 71125, - 65472, - 89208, - 55747, - 97531, - 81775, - 52513, - 72857, - 65290, - 91039, - 35257, - 86932, - 11694, - 36285, - 49799, - 75864, - 36523, - 67295, - 81775, - 81390, - 52850, - 53968, - 67864, - 47746, - 44630, - 51308, - 83039, - 30707, - 70014, - 84109, - 28305, - 41389, - 76513, - 40844, - 76277, - 55019, - 75864, - 77305, - 61356, - 79249, - 14283, - 52268, - 30707, - 75801, - 68275, - 79249, - 26445, - 94812, - 75801, - 26757, - 76277, - 47935, - 87425, - 61356, - 49799, - 61818, - 22948, - 48072, - 26199, - 80898, - 10743, - 40844, - 75864, - 88293, - 83164, - 75801, - 75801, - 18205, - 38867, - 84251, - 49738, - 49799, - 88087, - 67584, - 56266, - 52850, - 14587, - 75864, - 75131, - 98591, - 18502, - 68172, - 62819, - 74323, - 95233, - 48095, - 42340, - 84109, - 93797, - 73087, - 95149, - 40844, - 80812, - 28305, - 37419, - 96842, - 75801, - 78959, - 56727, - 76277, - 40844, - 44630, - 40844, - 78959, - 11109, - 53918, - 70907, - 96208, - 23222, - 73383, - 12794, - 75864, - 98087, - 82137, - 53606, - 28630, - 59757, - 37599, - 33032, - 68219, - 99744, - 67654, - 93797, - 52028, - 55803, - 75335, - 11694, - 80955, - 46595, - 26699, - 37782, - 12721, - 77978, - 40844, - 91966, - 29130, - 32412, - 61356, - 84970, - 40228, - 98087, - 84109, - 54769, - 15123, - 70469, - 51377, - 77889, - 84109, - 71125, - 85683, - 30904, - 36285, - 92228, - 12721, - 60938, - 75876, - 51147, - 81810, - 11690, - 97587, - 74726, - 96191, - 75780, - 28305, - 71567, - 20940, - 34365, - 87425, - 73879, - 66787, - 77650, - 74726, - 71064, - 84109, - 61356, - 52329, - 66321, - 49146, - 53972, - 18748, - 28607, - 65350, - 91039, - 44630, - 82837, - 61356, - 93628, - 50135, - 40844, - 80873, - 71125, - 62486, - 67654, - 69144, - 43539, - 93556, - 82114, - 10568, - 25428, - 50369, - 84109, - 49738, - 93797, - 68790, - 50187, - 43459, - 84109, - 33697, - 23562, - 32387, - 47280, - 62911, - 40228, - 61356, - 52850, - 78955, - 43107, - 84109, - 49738, - 75864, - 51147, - 20026, - 61356, - 56479, - 80955, - 61356, - 17222, - 47746, - 51207, - 46009, - 97531, - 16534, - 28480, - 40844, - 97678, - 92823, - 96208, - 84654, - 20478, - 52850, - 49799, - 83899, - 96207, - 70318, - 79249, - 95321, - 32973, - 44578, - 84109, - 84109, - 49799, - 76277, - 30707, - 72499, - 70772, - 29213, - 67902, - 98087, - 84109, - 91481, - 76277, - 28310, - 87425, - 32653, - 47746, - 48086, - 74181, - 26300, - 22127, - 70386, - 51147, - 49799, - 97531, - 73630, - 28089, - 40228, - 95585, - 66827, - 50881, - 49799, - 76277, - 98603, - 78528, - 94830, - 39291, - 84044, - 79249, - 44630, - 92069, - 76277, - 11134, - 75864, - 40228, - 37007, - 76277, - 96208, - 91397, - 46791, - 75864, - 91996, - 51147, - 29851, - 85269, - 52850, - 76277, - 88634, - 71603, - 27829, - 63627, - 51147, - 69066, - 28757, - 18555, - 77670, - 81775, - 93797, - 49738, - 28305, - 59101, - 61356, - 93229, - 49378, - 48946, - 79249, - 48408, - 49738, - 67117, - 91039, - 71125, - 40844, - 78959, - 72682, - 50187, - 40844, - 79854, - 50187, - 37752, - 49738, - 70834, - 75801, - 49738, - 28305, - 11554, - 29272, - 79547, - 17772, - 75864, - 71125, - 31822, - 57967, - 68281, - 98087, - 44295, - 28305, - 98087, - 41211, - 80456, - 49738, - 18250, - 52028, - 79249, - 40228, - 28305, - 84109, - 96672, - 40228, - 95091, - 79249, - 52850, - 49515, - 52827, - 75356, - 47746, - 91039, - 34110, - 39055, - 98087, - 16648, - 46277, - 47746, - 63430, - 11694, - 62075, - 98087, - 11745, - 49186, - 49738, - 76496, - 11694, - 75864, - 81580, - 71125, - 88939, - 71941, - 97531, - 49799, - 86504, - 75864, - 15115, - 20872, - 28168, - 47235, - 85595, - 91039, - 27058, - 85302, - 21587, - 12678, - 84154, - 52890, - 73714, - 75864, - 69296, - 44675, - 98087, - 63562, - 47746, - 35044, - 76662, - 88293, - 39552, - 96208, - 68175, - 60399, - 89287, - 98087, - 42276, - 93460, - 63652, - 44752, - 16486, - 28305, - 45573, - 47746, - 62122, - 70443, - 16675, - 57833, - 56613, - 99154, - 56133, - 49357, - 60866, - 47746, - 50560, - 76277, - 85118, - 93797, - 93108, - 21865, - 48676, - 25800, - 77645, - 84109, - 88361, - 19091, - 39510, - 99948, - 76277, - 18403, - 79249, - 91039, - 96572, - 32815, - 75801, - 50187, - 84109, - 87467, - 67654, - 60828, - 56266, - 51324, - 81775, - 72416, - 75864, - 79249, - 30707, - 67654, - 52422, - 30707, - 51147, - 76175, - 79797, - 71125, - 42990, - 76277, - 52004, - 38942, - 93396, - 98425, - 77679, - 19068, - 65962, - 88101, - 42786, - 88293, - 42990, - 61959, - 42529, - 99125, - 59110, - 51147, - 80755, - 17365, - 80268, - 67285, - 87185, - 15806, - 71358, - 87425, - 66100, - 51147, - 80955, - 66978, - 85824, - 40704, - 18149, - 24430, - 11694, - 20525, - 81001, - 98999, - 95761, - 51363, - 25400, - 80955, - 52028, - 71125, - 96208, - 93240, - 88546, - 49349, - 90193, - 35981, - 18658, - 69254, - 25765, - 52028, - 53529, - 47756, - 52850, - 71095, - 99257, - 49799, - 55820, - 75425, - 51328, - 30707, - 85390, - 46509, - 70945, - 23863, - 92788, - 44941, - 79249, - 49799, - 52850, - 52028, - 45636, - 91120, - 61403, - 63921, - 32937, - 25655, - 52028, - 61356, - 49799, - 30225, - 69044, - 94265, - 11694, - 71883, - 91397, - 51147, - 74407, - 47746, - 74541, - 37237, - 21658, - 57210, - 40844, - 61785, - 40228, - 67654, - 11635, - 49799, - 47746, - 47746, - 30707, - 19530, - 15587, - 66426, - 23988, - 71358, - 96208, - 78728, - 72246, - 57550, - 54114, - 76394, - 31516, - 69506, - 79249, - 44630, - 36285, - 95657, - 52028, - 33686, - 50480, - 18338, - 87425, - 68560, - 52028, - 40844, - 40228, - 59999, - 93797, - 60286, - 90784, - 67654, - 98358, - 11694, - 47746, - 82114, - 52850, - 41396, - 27455, - 28885, - 76447, - 95865, - 11694, - 97060, - 36285, - 76277, - 55461, - 30707, - 96245, - 75864, - 51194, - 50041, - 30051, - 14953, - 72188, - 84109, - 57055, - 76277, - 91397, - 65269, - 96439, - 16064, - 43279, - 52850, - 55322, - 28549, - 99138, - 83521, - 87425, - 48785, - 11694, - 71358, - 32908, - 38186, - 87627, - 82946, - 18482, - 32396, - 14774, - 40844, - 56266, - 78349, - 75864, - 79249, - 90262, - 52850, - 56266, - 75864, - 21058, - 51826, - 42990, - 33412, - 51147, - 91039, - 49799, - 72502, - 30308, - 34275, - 36332, - 22962, - 91039, - 15695, - 40878, - 79587, - 14900, - 11694, - 40844, - 56266, - 96208, - 53663, - 75864, - 84834, - 67101, - 11694, - 90467, - 91039, - 11694, - 11694, - 91397, - 85476, - 52028, - 37615, - 66396, - 49735, - 40844, - 81775, - 40844, - 39592, - 40228, - 46979, - 71125, - 40228, - 56266, - 29130, - 28305, - 99523, - 12965, - 36285, - 88293, - 56266 - ] -} \ No newline at end of file diff --git a/Day01/input.txt b/Day01/input.txt new file mode 100644 index 0000000..a7888fa --- /dev/null +++ b/Day01/input.txt @@ -0,0 +1,1000 @@ +99006 28305 +38540 91683 +18133 49738 +70780 13081 +38316 55879 +61729 73383 +57462 59629 +91153 56589 +76573 52850 +76155 36285 +24171 76277 +10666 30707 +73383 93797 +86077 24033 +40710 50187 +58326 65150 +67654 30707 +64826 52850 +70235 11694 +66149 71125 +24077 19630 +46497 93335 +78959 47746 +49339 29442 +54141 95451 +96148 29849 +60258 88293 +23099 57809 +41307 66225 +65974 82114 +40769 84109 +65277 79459 +20836 39953 +12863 96208 +30718 30707 +65114 50745 +46146 36285 +14591 81775 +99705 90954 +64713 86029 +18767 78959 +50856 44136 +19757 47746 +89557 74726 +54062 80955 +69386 30707 +91224 49972 +68269 75801 +47118 94704 +49799 57324 +42535 91397 +69994 50187 +52436 94924 +24596 56660 +86843 95067 +96155 75541 +25680 75049 +10905 30636 +73049 91039 +35651 82698 +13185 61356 +47380 49738 +11526 78959 +22640 17601 +28081 24121 +91214 38947 +70299 56815 +69491 64519 +14166 11598 +44639 11827 +39531 65456 +29197 97770 +97941 39589 +89154 67313 +74726 62661 +42065 57417 +67812 40982 +17072 26967 +73245 20609 +11680 79249 +68304 94322 +98762 25205 +51469 55108 +93672 47746 +19665 81775 +16645 69048 +58364 31379 +92331 50187 +97903 65233 +86845 79249 +50676 93797 +75338 48071 +87166 34605 +89047 94911 +33371 43535 +90980 44540 +92511 54481 +47738 98087 +81003 30707 +87425 53074 +86444 36285 +24802 51147 +26115 76277 +89747 63773 +46823 81775 +70790 54357 +45381 40553 +71680 21755 +56603 12660 +20721 25637 +54715 73383 +70245 32502 +95000 47746 +61672 49279 +69277 80955 +18422 20285 +89751 24379 +82454 81055 +18812 71141 +12403 50187 +51380 52850 +70840 30006 +56957 80955 +80981 75183 +42793 45433 +40184 68802 +75791 61356 +54948 15120 +25442 67654 +88023 11694 +34476 29242 +73955 43439 +40956 31785 +59337 60125 +84175 16414 +61172 79249 +20032 96208 +11394 97531 +89416 73030 +58763 39442 +71522 96208 +41390 29669 +89374 91039 +45927 12473 +13265 75801 +19150 40228 +82687 11428 +44626 49738 +44561 79249 +97948 51147 +14766 15646 +38684 16481 +74001 52850 +75864 40844 +65366 71125 +53729 67654 +90293 52850 +37726 97531 +70804 85744 +10158 95339 +46905 21771 +71830 22746 +26957 30707 +62648 69687 +16278 15961 +72223 84109 +68493 27071 +63124 14353 +39953 61356 +46199 93853 +51574 11750 +56997 83594 +15042 93797 +29355 85961 +32667 81775 +91910 96117 +45361 90326 +57209 42508 +21891 82114 +69835 36285 +94443 91397 +55059 40228 +15688 87731 +32147 88293 +86293 69781 +34923 63879 +44962 23951 +82598 96035 +40003 76078 +13023 81775 +27866 11694 +67002 88124 +91012 77163 +66044 48243 +33331 56996 +83739 40228 +46420 37353 +94463 32287 +89002 11694 +11437 89879 +22418 47746 +21411 15950 +32217 84109 +88031 28305 +35905 13458 +35647 65548 +51955 40377 +74030 74726 +81468 75864 +43969 88293 +46194 82114 +85098 86085 +19106 76277 +39507 81364 +49298 88422 +46755 75801 +65761 78300 +77565 69583 +99407 22393 +71358 75801 +40988 49738 +15235 49799 +85560 82033 +22336 50187 +30214 76277 +33528 47746 +65883 73396 +28514 43873 +54235 49621 +40814 84109 +30738 61805 +23352 88293 +74158 76277 +74379 75470 +13703 24883 +65060 51147 +98105 12843 +63511 82603 +14335 55075 +95359 82342 +88133 61356 +95532 43253 +51153 75098 +14718 62422 +13804 98736 +91397 49738 +43643 47746 +76512 75864 +64507 68412 +56558 50187 +94652 62259 +80650 42322 +56524 75908 +97034 70538 +78284 49799 +63253 17703 +70398 91039 +20457 87050 +38983 60522 +80593 79249 +32158 98087 +15099 13939 +78903 12907 +62941 80063 +11803 11694 +49738 37998 +27243 61846 +93339 79646 +68583 81203 +46703 84109 +66461 76277 +50187 98087 +15890 71125 +52412 65472 +88293 89208 +44630 55747 +85179 97531 +52028 81775 +84567 52513 +19950 72857 +51147 65290 +34362 91039 +83960 35257 +17612 86932 +44656 11694 +33483 36285 +51670 49799 +96300 75864 +95240 36523 +21850 67295 +52441 81775 +32254 81390 +68525 52850 +74508 53968 +80323 67864 +65300 47746 +24288 44630 +66066 51308 +16209 83039 +29819 30707 +74036 70014 +62630 84109 +34134 28305 +46966 41389 +73363 76513 +95916 40844 +21327 76277 +37034 55019 +80617 75864 +24686 77305 +25133 61356 +93810 79249 +68870 14283 +38845 52268 +41953 30707 +76876 75801 +20112 68275 +91690 79249 +12865 26445 +35744 94812 +49085 75801 +86030 26757 +88533 76277 +43415 47935 +34986 87425 +99785 61356 +91725 49799 +30670 61818 +94247 22948 +96381 48072 +59252 26199 +17282 80898 +45938 10743 +79072 40844 +55769 75864 +78572 88293 +87331 83164 +60162 75801 +71125 75801 +40031 18205 +52638 38867 +44289 84251 +63865 49738 +18898 49799 +95301 88087 +22055 67584 +53205 56266 +28323 52850 +90363 14587 +89953 75864 +73798 75131 +45863 98591 +98470 18502 +71795 68172 +33778 62819 +98946 74323 +21994 95233 +30707 48095 +51523 42340 +71441 84109 +33909 93797 +10691 73087 +29496 95149 +42230 40844 +68830 80812 +79249 28305 +44218 37419 +79729 96842 +32224 75801 +30279 78959 +38608 56727 +45483 76277 +32047 40844 +70586 44630 +76474 40844 +32742 78959 +98317 11109 +42335 53918 +65316 70907 +81775 96208 +96023 23222 +12721 73383 +73700 12794 +79390 75864 +90694 98087 +91565 82137 +86422 53606 +92810 28630 +74624 59757 +68037 37599 +28396 33032 +89780 68219 +30962 99744 +23460 67654 +77012 93797 +21031 52028 +66950 55803 +65128 75335 +28012 11694 +57394 80955 +98281 46595 +77495 26699 +74936 37782 +91250 12721 +91241 77978 +91314 40844 +88290 91966 +20940 29130 +94073 32412 +27646 61356 +60072 84970 +24487 40228 +93468 98087 +34827 84109 +42629 54769 +72808 15123 +67231 70469 +47920 51377 +95716 77889 +14507 84109 +38335 71125 +59119 85683 +27496 30904 +49592 36285 +59259 92228 +14976 12721 +32138 60938 +49659 75876 +11006 51147 +27301 81810 +59332 11690 +91052 97587 +63614 74726 +13512 96191 +85275 75780 +19247 28305 +40663 71567 +92257 20940 +68520 34365 +87435 87425 +59634 73879 +48762 66787 +37318 77650 +49411 74726 +34658 71064 +35706 84109 +93123 61356 +17924 52329 +87196 66321 +57740 49146 +22830 53972 +51620 18748 +75848 28607 +14772 65350 +18592 91039 +66676 44630 +44102 82837 +47056 61356 +86148 93628 +40518 50135 +41596 40844 +78037 80873 +35795 71125 +18723 62486 +93797 67654 +97671 69144 +23699 43539 +97919 93556 +16785 82114 +62616 10568 +15930 25428 +82441 50369 +32656 84109 +77413 49738 +72752 93797 +25097 68790 +19543 50187 +75318 43459 +19415 84109 +20997 33697 +35202 23562 +72538 32387 +44842 47280 +28326 62911 +17462 40228 +42990 61356 +20421 52850 +17182 78955 +49471 43107 +31823 84109 +90999 49738 +52439 75864 +47746 51147 +50990 20026 +26573 61356 +38712 56479 +69067 80955 +36559 61356 +81690 17222 +52850 47746 +82635 51207 +76405 46009 +78056 97531 +77790 16534 +97566 28480 +91451 40844 +30371 97678 +31553 92823 +40103 96208 +96713 84654 +72241 20478 +21177 52850 +36285 49799 +60819 83899 +89533 96207 +52878 70318 +98899 79249 +21739 95321 +52895 32973 +24760 44578 +61257 84109 +59243 84109 +83626 49799 +73327 76277 +89469 30707 +38452 72499 +91111 70772 +19932 29213 +23814 67902 +11228 98087 +90008 84109 +71262 91481 +75116 76277 +21556 28310 +67613 87425 +18819 32653 +16596 47746 +60189 48086 +91775 74181 +82183 26300 +82671 22127 +27814 70386 +56740 51147 +23120 49799 +57467 97531 +46686 73630 +75851 28089 +43651 40228 +97125 95585 +49136 66827 +91337 50881 +94434 49799 +32403 76277 +41731 98603 +27543 78528 +74801 94830 +14902 39291 +99047 84044 +66749 79249 +76240 44630 +72198 92069 +95888 76277 +32500 11134 +86753 75864 +15649 40228 +56086 37007 +15311 76277 +37803 96208 +53060 91397 +51967 46791 +17354 75864 +10055 91996 +34244 51147 +21231 29851 +59489 85269 +13639 52850 +34062 76277 +83983 88634 +93647 71603 +53687 27829 +70194 63627 +98944 51147 +13991 69066 +87843 28757 +74448 18555 +52799 77670 +75944 81775 +42844 93797 +96272 49738 +17838 28305 +26081 59101 +45724 61356 +47237 93229 +21228 49378 +35856 48946 +93591 79249 +61212 48408 +61062 49738 +96064 67117 +75537 91039 +44059 71125 +81622 40844 +50667 78959 +97084 72682 +13169 50187 +57322 40844 +12130 79854 +82114 50187 +54596 37752 +47748 49738 +24302 70834 +39283 75801 +44310 49738 +82822 28305 +79286 11554 +78155 29272 +26900 79547 +97801 17772 +62797 75864 +80367 71125 +52103 31822 +43130 57967 +28888 68281 +73180 98087 +82035 44295 +25627 28305 +10869 98087 +37552 41211 +84907 80456 +34645 49738 +61338 18250 +83990 52028 +11269 79249 +79295 40228 +43221 28305 +86001 84109 +34108 96672 +95413 40228 +19964 95091 +82521 79249 +60781 52850 +57794 49515 +12298 52827 +84216 75356 +36509 47746 +82594 91039 +32516 34110 +50254 39055 +35816 98087 +60865 16648 +61952 46277 +53399 47746 +77087 63430 +96779 11694 +13853 62075 +22933 98087 +58086 11745 +21436 49186 +50170 49738 +86579 76496 +26267 11694 +77545 75864 +43670 81580 +21175 71125 +87781 88939 +52791 71941 +48617 97531 +96403 49799 +67474 86504 +98932 75864 +46899 15115 +79574 20872 +30104 28168 +76149 47235 +70412 85595 +33000 91039 +59971 27058 +88217 85302 +15130 21587 +56015 12678 +54238 84154 +35684 52890 +88659 73714 +40206 75864 +81346 69296 +35433 44675 +84398 98087 +64460 63562 +32488 47746 +77815 35044 +61406 76662 +93879 88293 +33472 39552 +86621 96208 +31585 68175 +92665 60399 +51965 89287 +99377 98087 +20257 42276 +79455 93460 +44861 63652 +94931 44752 +34821 16486 +34053 28305 +35378 45573 +99445 47746 +30344 62122 +68931 70443 +57795 16675 +51592 57833 +52107 56613 +44792 99154 +81960 56133 +93395 49357 +53268 60866 +30699 47746 +44246 50560 +71363 76277 +84318 85118 +50198 93797 +58232 93108 +76277 21865 +22162 48676 +77444 25800 +77344 77645 +84109 84109 +64076 88361 +56650 19091 +69278 39510 +78847 99948 +81571 76277 +44644 18403 +90621 79249 +59174 91039 +43079 96572 +46349 32815 +69355 75801 +67085 50187 +66194 84109 +91560 87467 +96434 67654 +57896 60828 +12385 56266 +13553 51324 +39494 81775 +33031 72416 +84179 75864 +76823 79249 +78648 30707 +49568 67654 +13913 52422 +13779 30707 +19801 51147 +53472 76175 +54951 79797 +78858 71125 +33043 42990 +66269 76277 +69674 52004 +56156 38942 +15052 93396 +74147 98425 +16337 77679 +57835 19068 +35937 65962 +79379 88101 +37535 42786 +48559 88293 +72941 42990 +13143 61959 +98319 42529 +21984 99125 +52205 59110 +37942 51147 +30925 80755 +85946 17365 +29975 80268 +16606 67285 +10354 87185 +43214 15806 +75801 71358 +85088 87425 +23246 66100 +14264 51147 +97821 80955 +90143 66978 +43233 85824 +19501 40704 +62214 18149 +70520 24430 +98507 11694 +57062 20525 +19520 81001 +45602 98999 +22321 95761 +58654 51363 +40844 25400 +99926 80955 +27878 52028 +92982 71125 +24451 96208 +24960 93240 +78368 88546 +73870 49349 +64409 90193 +68720 35981 +84679 18658 +85561 69254 +61418 25765 +23592 52028 +79447 53529 +79307 47756 +43133 52850 +67547 71095 +25054 99257 +18090 49799 +42348 55820 +53062 75425 +12477 51328 +32590 30707 +43150 85390 +90232 46509 +54157 70945 +10397 23863 +40228 92788 +10069 44941 +82220 79249 +51061 49799 +24569 52850 +92802 52028 +21675 45636 +55904 91120 +32060 61403 +99313 63921 +64724 32937 +41313 25655 +92841 52028 +48903 61356 +32705 49799 +29306 30225 +12758 69044 +92611 94265 +37798 11694 +72934 71883 +17322 91397 +31246 51147 +42506 74407 +91039 47746 +41966 74541 +37154 37237 +80080 21658 +25042 57210 +63465 40844 +51158 61785 +71697 40228 +68447 67654 +59005 11635 +72699 49799 +77876 47746 +32324 47746 +80836 30707 +79063 19530 +92346 15587 +98008 66426 +52358 23988 +61687 71358 +19947 96208 +57697 78728 +81721 72246 +46459 57550 +25740 54114 +78645 76394 +80369 31516 +33120 69506 +86551 79249 +79500 44630 +87802 36285 +96810 95657 +63959 52028 +36968 33686 +56795 50480 +12699 18338 +80955 87425 +54674 68560 +89734 52028 +56820 40844 +33215 40228 +51005 59999 +54487 93797 +40303 60286 +89364 90784 +99804 67654 +47249 98358 +13318 11694 +71579 47746 +42237 82114 +10936 52850 +94920 41396 +97531 27455 +55195 28885 +37609 76447 +32421 95865 +86247 11694 +75761 97060 +92502 36285 +24793 76277 +79928 55461 +61966 30707 +54823 96245 +12390 75864 +98087 51194 +28305 50041 +11694 30051 +25773 14953 +10237 72188 +53818 84109 +90140 57055 +16877 76277 +70440 91397 +20425 65269 +31119 96439 +64934 16064 +41053 43279 +59199 52850 +96208 55322 +47865 28549 +72676 99138 +36328 83521 +87171 87425 +33085 48785 +29549 11694 +16365 71358 +21309 32908 +78146 38186 +77480 87627 +33026 82946 +78593 18482 +51671 32396 +24897 14774 +66982 40844 +10601 56266 +90805 78349 +98801 75864 +69006 79249 +87117 90262 +51999 52850 +69463 56266 +79838 75864 +87352 21058 +70793 51826 +65518 42990 +63083 33412 +14321 51147 +71218 91039 +68794 49799 +61356 72502 +29130 30308 +50008 34275 +75342 36332 +22229 22962 +43553 91039 +56266 15695 +26755 40878 +43604 79587 +69206 14900 +83729 11694 +97816 40844 +74873 56266 +96518 96208 +26091 53663 +35139 75864 +77138 84834 +63035 67101 +90356 11694 +64708 90467 +68272 91039 +87370 11694 +81179 11694 +91200 91397 +68973 85476 +44889 52028 +56893 37615 +28208 66396 +16017 49735 +33656 40844 +95864 81775 +85836 40844 +94113 39592 +38652 40228 +59247 46979 +64534 71125 +83964 40228 +15724 56266 +55105 29130 +13237 28305 +34736 99523 +95583 12965 +34797 36285 +47199 88293 +20631 56266 diff --git a/Day01/optimized.go b/Day01/optimized.go index 8e5a6ef..23a53b3 100644 --- a/Day01/optimized.go +++ b/Day01/optimized.go @@ -1,61 +1,77 @@ package main import ( - "encoding/json" + "bufio" "fmt" "log" "os" "sort" + "strconv" + "strings" ) func optimized() { fmt.Println("Optimized Code by ChatGPT") - // Read the file in one step - content, err := os.ReadFile("./input.json") + // Open the input file + file, err := os.Open("./input.txt") if err != nil { - log.Fatalf("Error when opening input.json: %v", err) + log.Fatalf("Error opening input.txt: %v", err) + } + defer file.Close() + + var ( + listA, listB []int + ) + + // Read and parse input file + scanner := bufio.NewScanner(file) + for scanner.Scan() { + line := strings.Fields(scanner.Text()) + if len(line) != 2 { + log.Fatalf("Invalid input format: %s", scanner.Text()) + } + num1, err1 := strconv.Atoi(line[0]) + num2, err2 := strconv.Atoi(line[1]) + if err1 != nil || err2 != nil { + log.Fatalf("Error converting input to integers: %v, %v", err1, err2) + } + listA = append(listA, num1) + listB = append(listB, num2) } - // Parse the JSON - var payload struct { - ListA []int `json:"list_a"` - ListB []int `json:"list_b"` - } - if err := json.Unmarshal(content, &payload); err != nil { - log.Fatalf("Error when unmarshalling input.json: %v", err) + if err := scanner.Err(); err != nil { + log.Fatalf("Error reading file: %v", err) } - // Part 1: Calculate the sum of absolute differences between sorted lists - sort.Ints(payload.ListA) - sort.Ints(payload.ListB) + // Part 1: Calculate sum of absolute differences + sort.Ints(listA) + sort.Ints(listB) sumPart1 := 0 - for i := range payload.ListA { - sumPart1 += abs(payload.ListA[i] - payload.ListB[i]) + for i := 0; i < len(listA); i++ { + diff := listA[i] - listB[i] + if diff < 0 { + diff = -diff + } + sumPart1 += diff } fmt.Printf("Sum of Part 1: %d\n", sumPart1) - // Part 2: Calculate weighted sum of common elements + // Part 2: Calculate weighted sum of matches sumPart2 := 0 countMap := make(map[int]int) - for _, v := range payload.ListB { - countMap[v]++ + + // Populate a map for quick lookup + for _, num := range listB { + countMap[num]++ } - for _, v := range payload.ListA { - if countMap[v] > 0 { - sumPart2 += v * countMap[v] - countMap[v] = 0 // Avoid double-counting + for _, num := range listA { + if count, found := countMap[num]; found { + sumPart2 += count * num } } + fmt.Printf("Sum of Part 2: %d\n", sumPart2) } - -// Helper function for absolute value -func abs(x int) int { - if x < 0 { - return -x - } - return x -} diff --git a/Day01/original.go b/Day01/original.go index d9225d9..747bca6 100644 --- a/Day01/original.go +++ b/Day01/original.go @@ -1,31 +1,41 @@ package main import ( - "encoding/json" + "bufio" "fmt" - "io/ioutil" "log" + "os" "sort" + "strconv" + "strings" ) func original() { fmt.Println("Original Code") - content, err := ioutil.ReadFile("./input.json") + file, err := os.Open("./input.txt") if err != nil { log.Fatal("Error when opening input.json: ", err) } - var payload map[string][]int - err = json.Unmarshal(content, &payload) - if err != nil { - log.Fatal("Error when unmarshalling input.json: ", err) + fileScanner := bufio.NewScanner(file) + fileScanner.Split(bufio.ScanLines) + + var ( + listA, listB []int + ) + + for fileScanner.Scan() { + slice := strings.Fields(fileScanner.Text()) + num1, _ := strconv.Atoi(slice[0]) + num2, _ := strconv.Atoi(slice[1]) + listA = append(listA, num1) + listB = append(listB, num2) } - // Part 1 - listA := payload["list_a"] - listB := payload["list_b"] + file.Close() + // Part 1 sort.Ints(listA) sort.Ints(listB) @@ -41,9 +51,6 @@ func original() { fmt.Println("Sum of Part 1: ", sumPart1) // Part 2 - listA = payload["list_a"] - listB = payload["list_b"] - sumPart2 := 0 for _, v1 := range listA { diff --git a/template/input.json b/template/input.txt similarity index 100% rename from template/input.json rename to template/input.txt