diff --git a/day1.jl b/day1.jl new file mode 100755 index 0000000..5256ef2 --- /dev/null +++ b/day1.jl @@ -0,0 +1,20 @@ +using DelimitedFiles + +depths = readdlm("day1input.txt") + +diffs = depths[2:end] - depths[1:end-1] + +pos_diff_count = size(findall(diffs .> 0), 1) + +println("depth increases: ", pos_diff_count, " / ", size(diffs, 1)) + +window_size = 3 + +window_sums = [sum(depths[i:i+2]) for i in 1:size(depths, 1)-2] + +window_diffs = window_sums[2:end] - window_sums[1:end-1] + +pos_wdiff_count = size(findall(window_diffs .> 0), 1) + +println("window sum increases: ", pos_wdiff_count, + " / ", size(window_diffs, 1)) diff --git a/day1input.txt b/day1input.txt new file mode 100644 index 0000000..ad1abff --- /dev/null +++ b/day1input.txt @@ -0,0 +1,2000 @@ +173 +175 +171 +177 +179 +177 +174 +177 +178 +185 +189 +195 +194 +211 +227 +226 +227 +221 +224 +227 +228 +231 +232 +229 +226 +244 +252 +251 +258 +269 +263 +255 +259 +261 +232 +231 +241 +244 +245 +278 +258 +259 +273 +272 +281 +284 +288 +303 +306 +312 +313 +325 +327 +332 +335 +345 +346 +328 +329 +327 +330 +325 +326 +325 +351 +352 +353 +363 +364 +382 +402 +401 +380 +370 +371 +348 +359 +357 +366 +386 +401 +387 +388 +404 +409 +430 +435 +441 +475 +469 +475 +473 +478 +510 +507 +508 +510 +502 +500 +512 +517 +521 +519 +532 +533 +537 +538 +540 +541 +545 +556 +548 +543 +549 +561 +562 +563 +562 +561 +572 +574 +575 +568 +569 +570 +579 +591 +590 +602 +601 +581 +583 +593 +590 +591 +577 +576 +579 +581 +563 +559 +563 +564 +567 +569 +570 +582 +579 +601 +598 +583 +589 +591 +597 +611 +618 +621 +622 +641 +657 +658 +661 +631 +633 +646 +647 +652 +667 +670 +676 +680 +681 +683 +681 +687 +690 +683 +687 +690 +695 +691 +693 +696 +695 +700 +697 +696 +700 +713 +696 +693 +698 +701 +700 +699 +690 +692 +693 +696 +722 +744 +746 +758 +763 +768 +782 +776 +777 +787 +797 +800 +801 +789 +814 +815 +812 +790 +791 +790 +804 +813 +841 +845 +844 +848 +855 +847 +855 +858 +859 +858 +860 +867 +868 +869 +877 +887 +888 +895 +896 +904 +905 +907 +923 +932 +944 +945 +950 +955 +965 +990 +1019 +1017 +1025 +1040 +1041 +1066 +1060 +1033 +1034 +1047 +1057 +1060 +1061 +1068 +1071 +1080 +1081 +1090 +1096 +1097 +1098 +1099 +1093 +1096 +1100 +1101 +1112 +1118 +1119 +1121 +1123 +1125 +1126 +1152 +1155 +1149 +1161 +1166 +1178 +1181 +1182 +1189 +1190 +1176 +1169 +1183 +1196 +1183 +1205 +1207 +1198 +1200 +1186 +1172 +1162 +1177 +1179 +1175 +1163 +1164 +1170 +1168 +1171 +1173 +1172 +1174 +1175 +1172 +1173 +1167 +1169 +1173 +1176 +1177 +1178 +1179 +1181 +1185 +1186 +1196 +1183 +1181 +1176 +1190 +1200 +1216 +1240 +1238 +1234 +1224 +1247 +1257 +1258 +1246 +1233 +1234 +1223 +1229 +1231 +1232 +1231 +1232 +1249 +1255 +1254 +1257 +1268 +1298 +1300 +1302 +1325 +1337 +1339 +1345 +1348 +1336 +1341 +1342 +1343 +1344 +1343 +1336 +1351 +1360 +1362 +1359 +1357 +1358 +1364 +1370 +1372 +1373 +1374 +1378 +1409 +1390 +1398 +1410 +1411 +1417 +1418 +1431 +1450 +1451 +1452 +1456 +1468 +1469 +1472 +1475 +1465 +1469 +1453 +1457 +1458 +1474 +1464 +1454 +1457 +1460 +1467 +1469 +1470 +1455 +1456 +1468 +1476 +1498 +1502 +1500 +1514 +1522 +1529 +1528 +1516 +1511 +1516 +1521 +1503 +1523 +1498 +1515 +1527 +1526 +1527 +1556 +1567 +1586 +1607 +1616 +1615 +1611 +1612 +1621 +1599 +1600 +1601 +1625 +1632 +1633 +1628 +1656 +1644 +1646 +1669 +1671 +1675 +1676 +1682 +1681 +1658 +1657 +1671 +1669 +1668 +1669 +1670 +1691 +1708 +1709 +1708 +1724 +1731 +1738 +1748 +1766 +1767 +1769 +1756 +1757 +1758 +1759 +1760 +1773 +1775 +1777 +1780 +1782 +1793 +1813 +1795 +1796 +1798 +1797 +1804 +1806 +1811 +1812 +1813 +1818 +1822 +1829 +1824 +1814 +1811 +1806 +1825 +1844 +1847 +1837 +1841 +1844 +1836 +1825 +1828 +1841 +1846 +1839 +1840 +1847 +1856 +1869 +1870 +1871 +1879 +1884 +1890 +1888 +1859 +1861 +1873 +1870 +1871 +1876 +1885 +1886 +1887 +1888 +1887 +1895 +1888 +1889 +1891 +1890 +1884 +1885 +1854 +1857 +1860 +1841 +1837 +1838 +1841 +1859 +1863 +1865 +1866 +1864 +1853 +1855 +1865 +1867 +1875 +1876 +1877 +1880 +1877 +1876 +1886 +1894 +1901 +1903 +1910 +1901 +1903 +1905 +1911 +1913 +1928 +1938 +1940 +1946 +1956 +1951 +1953 +1955 +1961 +1957 +1960 +1967 +1966 +1970 +1976 +1979 +1980 +1979 +1967 +1974 +1980 +1974 +1975 +1976 +2005 +2012 +2015 +2022 +2023 +2024 +2018 +2017 +2024 +2041 +2042 +2043 +2074 +2075 +2077 +2084 +2090 +2091 +2096 +2097 +2100 +2103 +2090 +2063 +2081 +2082 +2079 +2095 +2093 +2095 +2103 +2084 +2093 +2098 +2116 +2123 +2124 +2123 +2117 +2115 +2120 +2121 +2132 +2138 +2146 +2158 +2162 +2163 +2167 +2177 +2178 +2183 +2178 +2198 +2174 +2187 +2196 +2221 +2224 +2228 +2232 +2237 +2238 +2257 +2262 +2263 +2266 +2280 +2287 +2293 +2280 +2281 +2289 +2290 +2289 +2291 +2307 +2316 +2322 +2321 +2320 +2335 +2339 +2345 +2348 +2357 +2360 +2361 +2367 +2375 +2380 +2382 +2389 +2398 +2384 +2388 +2390 +2367 +2369 +2371 +2366 +2370 +2371 +2379 +2364 +2365 +2368 +2369 +2370 +2377 +2378 +2390 +2392 +2398 +2402 +2393 +2404 +2417 +2441 +2446 +2453 +2459 +2462 +2463 +2464 +2476 +2477 +2481 +2482 +2483 +2477 +2481 +2489 +2500 +2504 +2491 +2490 +2487 +2474 +2475 +2476 +2478 +2489 +2491 +2498 +2501 +2513 +2514 +2532 +2546 +2547 +2553 +2559 +2562 +2580 +2588 +2590 +2602 +2601 +2608 +2613 +2616 +2623 +2626 +2651 +2652 +2654 +2650 +2651 +2654 +2658 +2657 +2660 +2654 +2668 +2669 +2662 +2665 +2647 +2660 +2670 +2672 +2680 +2677 +2678 +2677 +2684 +2677 +2678 +2684 +2702 +2703 +2707 +2727 +2728 +2738 +2739 +2738 +2757 +2759 +2766 +2771 +2775 +2788 +2790 +2794 +2797 +2800 +2798 +2801 +2800 +2802 +2803 +2804 +2831 +2820 +2821 +2824 +2827 +2813 +2816 +2826 +2827 +2829 +2834 +2835 +2841 +2849 +2854 +2855 +2867 +2877 +2894 +2900 +2918 +2917 +2898 +2899 +2901 +2902 +2903 +2901 +2919 +2920 +2931 +2939 +2945 +2946 +2934 +2936 +2947 +2956 +2955 +2958 +2946 +2947 +2951 +2955 +2957 +2960 +2964 +2965 +2974 +2976 +2992 +3009 +3014 +3015 +2997 +2996 +3003 +3000 +3006 +3026 +3019 +3031 +3012 +3013 +3020 +3010 +3014 +3018 +3019 +3031 +3007 +3017 +3018 +3031 +3033 +3025 +3037 +3039 +3033 +3000 +3001 +3003 +3014 +3016 +3034 +3033 +3035 +3038 +3040 +3038 +3020 +3018 +3020 +3021 +3039 +3043 +3034 +3036 +3043 +3059 +3074 +3076 +3090 +3096 +3103 +3101 +3102 +3113 +3114 +3115 +3119 +3127 +3146 +3140 +3145 +3146 +3147 +3151 +3152 +3153 +3154 +3144 +3149 +3157 +3163 +3172 +3175 +3180 +3206 +3207 +3212 +3215 +3211 +3212 +3220 +3229 +3230 +3226 +3227 +3256 +3296 +3299 +3301 +3303 +3301 +3302 +3308 +3324 +3323 +3313 +3314 +3317 +3318 +3317 +3330 +3358 +3360 +3369 +3363 +3368 +3371 +3377 +3381 +3385 +3382 +3379 +3381 +3383 +3385 +3386 +3389 +3388 +3392 +3396 +3393 +3391 +3393 +3394 +3398 +3400 +3403 +3404 +3408 +3424 +3425 +3426 +3424 +3415 +3417 +3420 +3439 +3442 +3447 +3454 +3478 +3480 +3477 +3478 +3470 +3472 +3477 +3476 +3477 +3479 +3509 +3519 +3542 +3547 +3548 +3564 +3565 +3569 +3570 +3584 +3591 +3590 +3589 +3598 +3603 +3605 +3609 +3608 +3628 +3624 +3644 +3652 +3654 +3648 +3650 +3652 +3659 +3661 +3675 +3676 +3690 +3692 +3699 +3700 +3702 +3703 +3706 +3715 +3719 +3720 +3725 +3721 +3730 +3722 +3740 +3750 +3751 +3752 +3761 +3763 +3778 +3777 +3778 +3780 +3777 +3794 +3793 +3792 +3802 +3803 +3806 +3817 +3814 +3823 +3824 +3825 +3826 +3831 +3834 +3835 +3844 +3856 +3857 +3864 +3879 +3904 +3906 +3923 +3933 +3935 +3934 +3935 +3937 +3935 +3944 +3941 +3936 +3937 +3935 +3936 +3935 +3937 +3938 +3949 +3950 +3949 +3952 +3953 +3980 +3989 +3990 +3991 +3992 +3988 +3993 +4003 +3969 +3959 +3964 +3973 +3981 +3987 +3986 +3975 +3982 +3981 +3983 +3981 +3984 +3992 +3991 +3984 +3999 +4003 +4004 +3996 +3992 +4035 +4043 +4042 +4034 +4027 +4051 +4052 +4048 +4051 +4049 +4060 +4059 +4062 +4061 +4063 +4062 +4053 +4056 +4067 +4055 +4057 +4058 +4072 +4077 +4075 +4060 +4057 +4058 +4061 +4060 +4061 +4060 +4070 +4088 +4097 +4093 +4105 +4107 +4105 +4103 +4105 +4109 +4086 +4111 +4112 +4115 +4110 +4118 +4119 +4127 +4128 +4129 +4130 +4134 +4136 +4135 +4138 +4139 +4140 +4135 +4158 +4137 +4138 +4158 +4157 +4154 +4156 +4175 +4176 +4179 +4184 +4198 +4196 +4199 +4180 +4188 +4193 +4192 +4201 +4200 +4192 +4207 +4220 +4218 +4230 +4229 +4247 +4248 +4249 +4253 +4254 +4256 +4265 +4266 +4272 +4268 +4273 +4295 +4296 +4305 +4295 +4310 +4311 +4312 +4311 +4314 +4307 +4305 +4294 +4306 +4321 +4316 +4326 +4330 +4331 +4337 +4336 +4337 +4338 +4340 +4342 +4345 +4347 +4345 +4370 +4384 +4405 +4406 +4419 +4420 +4435 +4439 +4443 +4445 +4447 +4431 +4424 +4433 +4418 +4417 +4416 +4417 +4420 +4424 +4440 +4442 +4454 +4461 +4481 +4483 +4479 +4480 +4484 +4485 +4495 +4498 +4499 +4524 +4527 +4528 +4539 +4541 +4545 +4543 +4559 +4569 +4571 +4568 +4573 +4570 +4571 +4580 +4579 +4580 +4583 +4588 +4589 +4590 +4597 +4632 +4625 +4626 +4618 +4621 +4632 +4642 +4644 +4647 +4650 +4665 +4669 +4666 +4673 +4674 +4677 +4681 +4686 +4651 +4657 +4658 +4664 +4665 +4667 +4685 +4688 +4695 +4712 +4714 +4715 +4717 +4731 +4734 +4738 +4737 +4743 +4745 +4752 +4753 +4748 +4763 +4768 +4769 +4771 +4774 +4801 +4802 +4830 +4845 +4850 +4847 +4873 +4883 +4884 +4885 +4886 +4887 +4896 +4891 +4913 +4914 +4937 +4938 +4953 +4959 +4979 +4984 +4990 +4982 +4979 +5008 +5007 +5008 +5004 +5015 +5017 +5038 +5066 +5067 +5069 +5078 +5091 +5101 +5086 +5088 +5086 +5092 +5097 +5098 +5088 +5070 +5072 +5083 +5082 +5073 +5077 +5080 +5076 +5073 +5065 +5066 +5068 +5069 +5081 +5082 +5084 +5083 +5086 +5089 +5092 +5095 +5130 +5133 +5119 +5129 +5130 +5138 +5140 +5148 +5147 +5150 +5151 +5155 +5163 +5188 +5190 +5192 +5189 +5196 +5180 +5191 +5193 +5197 +5182 +5162 +5163 +5147 +5154 +5155 +5168 +5207 +5216 +5223 +5228 +5227 +5229 +5221 +5218 +5221 +5219 +5220 +5230 +5259 +5260 +5233 +5256 +5258 +5251 +5246 +5230 +5234 +5242 +5245 +5260 +5261 +5269 +5281 +5285 +5296 +5297 +5296 +5297 +5298 +5313 +5314 +5313 +5319 +5313 +5322 +5324 +5325 +5333 +5346 +5354 +5355 +5345 +5347 +5349 +5350 +5352 +5339 +5349 +5345 +5361 +5362 +5363 +5404 +5398 +5424 +5415 +5420 +5433 +5435 +5436 +5437 +5438 +5455 +5454 +5460 +5455 +5453 +5454 +5466 +5469 +5471 +5481 +5482 +5502 +5503 +5501 +5484 +5460 +5461 +5465 +5466 +5470 +5454 +5460 +5486 +5482 +5483 +5502 +5512 +5514 +5516 +5518 +5525 +5526 +5521 +5515 +5518 +5521 +5528 +5539 +5557 +5561 +5577 +5571 +5572 +5579 +5576 +5577 +5589 +5592 +5595 +5596 +5595 +5601 +5587 +5560 +5563 +5562 +5571 +5598 +5606 +5621 +5636 +5637 +5663 +5665 +5678 +5677 +5678 +5679 +5684 +5687 +5684 +5688 +5691 +5690 +5693 +5696 +5707 +5725 +5727 +5731 +5734 +5738 +5748 +5767 +5768 +5763 +5767 +5758 +5760 +5791 +5777 +5778 +5782 +5773 +5776 +5777 +5791 +5792 +5793 +5795 +5781 +5786 +5793 +5805 +5807 +5818 +5822 +5821 +5826 +5827 +5846 +5847 +5864 +5886 +5878 +5873 +5868 +5878 +5876 +5881 +5876 +5888 +5890 +5893 +5894 +5895 +5900 +5907 +5908 +5915 +5916 +5937 +5936 +5927 +5938 +5945 +5944 +5935 +5942 +5943 +5945 +5948 +5977 +5985 +5975 +5985 +5998 +5999 +5996 +6027 +6047 +6031 +6033 +6034 +6022 +6023 +6025 +6030 +6029 +6030 +6034 +6046 +6055 +6061 +6058 +6067 +6070 +6077 +6069 +6088 +6084 +6090 +6100 +6102 +6107 +6111 +6108 +6103 +6104 +6114 +6118 +6107 +6114 +6102 +6112 +6113 +6115 +6116 +6139 +6135 +6143 +6154 +6155 +6160 +6163 +6160 +6163 +6169 +6184 +6176 +6199 +6205 +6204 +6219 +6222 +6231 +6207 +6218 +6219 +6221 +6222 +6221 +6200 +6194 +6203 +6204 +6210 +6209 +6210 +6209 +6210 +6230 +6238 +6239 +6245 +6249 +6264 +6271 +6262 +6275 +6252 +6253 +6240 +6245 +6219 +6220 +6221 +6222 +6225 +6231 +6236 +6238 +6267 +6272 +6273 +6278 +6287 +6286 +6287 +6281 +6264 +6269 +6270 +6274 +6247 +6248 +6259 +6264 +6267 +6276 +6281 +6286 +6284 +6289 +6287 +6275 +6247 +6263 +6261 +6264 +6265 +6270 +6271 +6272 +6271 +6280 +6282 +6283 +6291 +6302 +6303 +6315 +6335 +6361 +6358 +6359 +6362 +6363 +6349 +6348 +6355 +6357 +6358 +6357 +6375 +6374 +6367 +6342 +6350 +6354 +6353 +6354 +6357 +6369 +6371 +6382 +6384 +6371 +6403 +6402 +6412 +6413 +6415 +6416 +6417 +6418 +6419 +6420 +6438 +6436 +6438 +6443 +6454 +6440 +6439 +6431 +6442 +6441 +6444 +6446 +6450 +6422 +6424 +6418 +6426 +6437 +6438 +6439 +6449 +6451 +6452 +6463 +6464 +6475 +6492 +6499 +6506 +6519 +6548 +6545 +6543 +6556 +6565 +6567 +6564 +6553 +6554 +6556 +6564 +6584 +6580 +6581 +6582 +6584 +6585 +6586 +6595 +6596 +6595 +6598 +6575 +6594 +6595 +6593 +6591 +6602 +6603 +6575 +6573 +6577 +6586 +6587 +6615 +6624 +6647 +6677 +6678 +6679 +6683 +6682 +6684 +6689 +6704 +6709 +6723 +6751 +6754 +6755 +6757 +6758 +6774 +6787 +6791 +6816 +6837 +6838 +6846 +6847 +6845 +6847 +6850 +6864 +6863 +6853 +6874 +6875 +6874 +6883 +6891 +6899 +6918 +6920 +6921 +6937 +6934 +6935 +6951 +6950 +6969 +6971 +6976 +6978 +6979 +6987 +6989 +6987 +6989 +6991 +6990 +6991 +6980 +6979 +6963 +6964 +6968 +6972 +7000 +6992 +7003 +7006 +7019 +7022 +7028 +7040 +7035 +7034 +7055 +7063 +7065 +7066 +7071 +7079 +7092 +7102 +7118 +7115 +7121 diff --git a/day2.jl b/day2.jl new file mode 100644 index 0000000..35f4857 --- /dev/null +++ b/day2.jl @@ -0,0 +1,46 @@ +using DelimitedFiles + +course = readdlm("day2input.txt") + +depth = 0 +horizontal = 0 + +for row in 1:size(course, 1) + global horizontal, depth + direction = course[row, 1] + value = course[row, 2] + if direction == "forward" + horizontal += value + elseif direction == "up" + depth -= value + elseif direction == "down" + depth += value + end +end + +println("depth = ", depth) +println("horiz = ", horizontal) +println("prod = ", depth * horizontal) + +depth = 0 +horizontal = 0 +aim = 0 + +for row in 1:size(course, 1) + global horizontal, depth, aim + direction = course[row, 1] + value = course[row, 2] + if direction == "forward" + horizontal += value + depth += value * aim + elseif direction == "up" + aim -= value + elseif direction == "down" + aim += value + end +end + +println("depth = ", depth) +println("horiz = ", horizontal) +println("aim = ", aim) +println("prod = ", depth * horizontal) diff --git a/day2input.txt b/day2input.txt new file mode 100644 index 0000000..d863ae7 --- /dev/null +++ b/day2input.txt @@ -0,0 +1,1000 @@ +forward 8 +down 9 +forward 2 +down 1 +forward 9 +forward 7 +forward 5 +up 3 +up 3 +down 5 +forward 2 +down 8 +down 3 +forward 6 +down 2 +down 4 +down 7 +down 7 +forward 2 +down 6 +down 8 +down 2 +down 8 +up 9 +down 8 +forward 8 +down 5 +up 4 +forward 4 +forward 4 +forward 3 +down 9 +forward 8 +up 3 +forward 2 +forward 3 +forward 6 +down 7 +down 2 +forward 4 +forward 7 +forward 6 +up 5 +up 1 +forward 4 +down 9 +up 6 +forward 6 +up 9 +forward 1 +down 9 +forward 4 +down 3 +forward 7 +forward 5 +down 1 +up 9 +down 9 +forward 6 +forward 1 +down 5 +down 6 +forward 6 +forward 3 +up 4 +up 9 +down 3 +forward 6 +up 4 +up 6 +forward 4 +down 1 +down 2 +up 9 +forward 8 +down 2 +down 3 +down 4 +up 3 +forward 3 +forward 4 +down 4 +forward 7 +forward 9 +down 7 +forward 6 +forward 2 +up 6 +forward 7 +forward 9 +down 5 +forward 6 +up 9 +forward 6 +forward 2 +forward 6 +up 3 +down 1 +forward 5 +down 3 +forward 7 +down 4 +forward 1 +forward 7 +down 1 +up 2 +down 7 +down 6 +forward 8 +forward 2 +forward 1 +forward 9 +down 3 +forward 3 +down 6 +up 8 +up 3 +forward 1 +forward 3 +forward 7 +down 9 +forward 7 +forward 3 +up 6 +forward 4 +down 9 +forward 2 +down 4 +up 2 +down 1 +up 1 +down 6 +forward 1 +up 6 +up 7 +forward 3 +forward 3 +forward 2 +forward 1 +down 7 +forward 9 +down 5 +down 9 +up 9 +forward 3 +forward 8 +down 3 +forward 9 +forward 4 +down 3 +up 4 +up 8 +up 4 +down 8 +down 6 +down 5 +forward 2 +up 6 +up 1 +up 9 +down 4 +up 8 +forward 6 +down 1 +forward 7 +up 2 +forward 6 +up 2 +down 6 +down 5 +forward 2 +down 2 +down 1 +forward 8 +forward 1 +up 9 +forward 3 +down 6 +forward 2 +forward 8 +down 3 +forward 3 +forward 4 +forward 7 +forward 2 +up 4 +forward 8 +forward 1 +forward 9 +down 3 +down 1 +forward 8 +down 5 +down 3 +forward 5 +down 7 +down 1 +forward 8 +forward 2 +forward 4 +forward 8 +forward 6 +down 1 +forward 5 +forward 9 +forward 9 +up 9 +forward 9 +forward 4 +down 5 +down 2 +down 3 +forward 8 +forward 9 +up 8 +up 1 +up 6 +forward 7 +up 9 +forward 2 +forward 6 +up 6 +forward 3 +up 4 +forward 1 +down 4 +up 6 +down 5 +forward 7 +forward 6 +down 3 +down 4 +forward 3 +down 6 +down 1 +forward 5 +forward 7 +up 8 +forward 4 +up 7 +down 4 +forward 3 +down 7 +forward 7 +forward 4 +forward 1 +forward 8 +up 5 +up 6 +forward 5 +forward 3 +down 6 +forward 8 +forward 2 +forward 7 +down 7 +down 8 +down 3 +up 3 +down 1 +down 1 +forward 6 +forward 9 +forward 4 +forward 9 +forward 6 +down 1 +forward 9 +down 6 +down 8 +up 5 +down 8 +forward 4 +forward 2 +up 6 +down 9 +forward 6 +down 9 +down 6 +down 6 +forward 2 +up 8 +down 7 +down 2 +forward 2 +forward 2 +down 1 +up 8 +down 5 +forward 9 +forward 5 +forward 8 +forward 8 +forward 1 +down 2 +down 7 +up 5 +forward 9 +forward 4 +forward 4 +forward 6 +down 7 +up 5 +forward 5 +up 9 +down 7 +down 4 +down 9 +forward 7 +up 4 +down 1 +down 6 +up 2 +up 6 +down 2 +forward 9 +down 3 +forward 3 +forward 4 +forward 1 +up 2 +forward 6 +down 3 +forward 2 +down 9 +forward 8 +forward 3 +forward 2 +up 5 +forward 3 +forward 1 +down 8 +up 2 +up 4 +up 5 +down 3 +down 6 +down 1 +forward 4 +up 3 +down 1 +down 4 +up 6 +forward 8 +down 5 +down 7 +down 7 +forward 9 +forward 9 +down 2 +up 2 +down 5 +forward 5 +forward 4 +down 7 +forward 4 +down 2 +forward 2 +forward 4 +up 8 +down 8 +up 4 +forward 2 +forward 2 +up 8 +forward 2 +down 3 +down 7 +down 9 +up 6 +up 3 +forward 2 +forward 3 +up 8 +forward 6 +up 8 +up 1 +down 6 +down 8 +up 9 +down 1 +up 8 +forward 9 +forward 4 +forward 9 +forward 8 +forward 1 +down 6 +down 7 +up 5 +down 1 +forward 9 +down 9 +forward 7 +down 5 +forward 7 +down 1 +down 4 +down 4 +forward 6 +forward 1 +up 4 +up 2 +forward 7 +down 6 +down 2 +down 3 +up 7 +up 1 +down 6 +down 6 +down 8 +down 8 +forward 5 +forward 1 +forward 5 +up 8 +forward 8 +up 8 +forward 1 +down 9 +forward 1 +up 7 +up 3 +down 1 +down 9 +up 2 +down 3 +down 2 +forward 9 +up 9 +up 1 +up 5 +forward 8 +down 3 +down 7 +forward 7 +down 8 +down 5 +down 5 +down 4 +down 7 +forward 6 +forward 6 +forward 4 +forward 6 +forward 3 +up 5 +forward 2 +down 7 +forward 1 +down 4 +down 7 +down 7 +forward 4 +down 2 +up 4 +forward 2 +up 2 +up 3 +down 5 +forward 3 +down 2 +forward 5 +down 2 +down 1 +up 4 +up 5 +up 9 +forward 1 +forward 9 +down 9 +up 8 +forward 9 +forward 7 +down 9 +down 2 +down 9 +forward 9 +forward 7 +up 7 +forward 6 +up 6 +forward 5 +forward 6 +down 4 +forward 8 +forward 5 +forward 2 +up 4 +down 4 +forward 1 +down 2 +up 9 +up 7 +up 2 +up 3 +down 9 +forward 4 +up 6 +forward 5 +forward 5 +forward 9 +forward 1 +down 6 +forward 8 +down 5 +up 3 +up 1 +down 2 +up 4 +down 1 +down 9 +forward 8 +down 2 +forward 7 +down 7 +up 5 +down 7 +down 3 +forward 2 +forward 2 +forward 4 +down 9 +down 6 +down 9 +forward 6 +down 6 +down 9 +forward 1 +down 1 +forward 8 +down 4 +up 6 +down 2 +forward 9 +down 3 +up 3 +down 2 +up 2 +up 5 +down 8 +forward 1 +forward 3 +down 8 +up 3 +up 3 +up 3 +forward 2 +up 3 +down 4 +down 1 +down 7 +forward 3 +down 3 +down 8 +down 9 +forward 9 +forward 3 +up 4 +forward 8 +forward 8 +up 7 +up 3 +forward 6 +down 9 +up 1 +forward 2 +down 6 +up 6 +forward 2 +down 6 +down 3 +up 7 +forward 6 +down 6 +down 1 +down 5 +forward 6 +up 2 +down 2 +down 3 +down 1 +up 9 +forward 6 +up 2 +forward 2 +down 6 +up 3 +up 4 +forward 8 +up 8 +up 4 +down 7 +down 4 +up 9 +forward 9 +up 6 +forward 5 +forward 7 +forward 2 +forward 8 +down 7 +down 5 +down 4 +up 3 +forward 7 +down 2 +forward 5 +forward 9 +forward 4 +forward 7 +forward 8 +up 6 +down 1 +forward 3 +forward 9 +forward 1 +down 8 +down 1 +down 3 +down 1 +down 1 +up 3 +down 5 +up 1 +down 8 +down 2 +down 8 +down 3 +forward 2 +forward 8 +forward 4 +down 8 +down 6 +forward 8 +down 7 +forward 8 +forward 2 +forward 6 +forward 6 +forward 4 +up 2 +forward 3 +up 8 +forward 7 +forward 4 +down 8 +down 3 +down 4 +up 8 +forward 5 +forward 3 +up 4 +up 2 +down 6 +forward 4 +up 8 +up 3 +up 8 +down 3 +up 1 +forward 2 +down 4 +down 4 +down 9 +down 5 +forward 9 +up 6 +up 5 +down 8 +down 6 +down 7 +forward 8 +forward 4 +up 4 +forward 1 +down 4 +up 4 +down 9 +up 6 +down 9 +up 3 +forward 4 +down 1 +down 5 +down 5 +up 1 +down 8 +down 9 +down 1 +forward 4 +down 8 +down 6 +down 1 +forward 2 +down 5 +up 1 +up 1 +down 1 +down 3 +down 3 +down 8 +down 6 +down 5 +down 3 +up 3 +forward 5 +down 7 +down 7 +forward 2 +forward 6 +forward 1 +down 8 +forward 2 +up 2 +forward 2 +down 2 +forward 7 +down 7 +down 9 +up 2 +up 2 +down 3 +forward 1 +down 1 +forward 5 +forward 4 +down 4 +forward 6 +forward 2 +forward 7 +forward 2 +forward 8 +down 4 +up 3 +down 3 +up 9 +down 7 +up 8 +down 1 +down 8 +up 9 +down 6 +up 5 +up 8 +down 2 +down 3 +forward 1 +down 5 +down 5 +forward 8 +down 9 +forward 7 +forward 8 +down 1 +down 2 +up 8 +down 2 +up 5 +down 3 +forward 5 +forward 6 +up 4 +up 3 +forward 5 +forward 1 +down 2 +forward 2 +down 9 +up 7 +down 2 +up 8 +forward 2 +forward 2 +up 4 +forward 5 +down 4 +up 6 +up 8 +forward 9 +up 1 +forward 9 +forward 7 +forward 3 +forward 1 +down 1 +forward 5 +forward 2 +forward 6 +forward 6 +forward 3 +forward 7 +up 7 +down 6 +down 2 +up 5 +down 5 +up 2 +forward 7 +forward 2 +down 9 +up 4 +down 5 +down 3 +forward 7 +down 2 +forward 9 +forward 6 +down 3 +down 3 +forward 6 +down 9 +forward 7 +up 5 +up 6 +down 3 +up 4 +forward 4 +up 3 +down 8 +down 9 +down 9 +down 4 +up 1 +up 2 +down 3 +forward 4 +forward 5 +down 1 +up 3 +down 8 +down 7 +forward 2 +up 4 +down 8 +forward 1 +forward 6 +up 8 +down 2 +down 6 +forward 5 +up 8 +forward 7 +down 9 +forward 9 +down 3 +forward 9 +forward 1 +forward 6 +up 7 +forward 1 +down 5 +down 8 +down 3 +forward 5 +forward 6 +down 7 +forward 4 +down 6 +forward 4 +up 4 +down 4 +forward 4 +down 9 +forward 3 +down 6 +forward 3 +down 3 +up 3 +forward 3 +down 4 +down 4 +down 4 +down 5 +forward 5 +down 9 +down 7 +down 1 +forward 5 +forward 3 +forward 8 +down 5 +forward 4 +forward 3 +down 8 +forward 1 +forward 1 +down 6 +forward 4 +down 5 +forward 8 +down 7 +forward 6 +down 7 +up 2 +forward 6 +down 7 +down 3 +down 6 +up 2 +forward 8 +forward 5 +down 6 +forward 5 +up 7 +forward 8 +down 1 +forward 2 +up 7 +down 4 +up 5 +forward 5 +forward 4 +forward 3 +down 1 +forward 8 +up 9 +down 2 +up 4 +forward 7 +up 6 +forward 3 +down 8 +forward 4 +down 2 +down 9 +forward 8 +down 5 +forward 3 +down 9 +up 1 +forward 6 +up 9 +down 7 +forward 5 +forward 3 +down 8 +down 6 +up 3 +down 5 +forward 7 +up 2 +forward 4 +up 1 +down 8 +down 7 +forward 3 +forward 1 +down 3 +down 8 +forward 7 +up 2 +down 7 +up 6 +down 7 +down 1 +down 3 +up 6 +forward 2 +down 5 +forward 1 +forward 7 +forward 2 +down 8 +down 8 +down 7 +forward 7 +forward 5 +forward 1 +forward 7 +forward 3 +down 2 +up 8 +up 4 +up 6 +down 2 +down 1 +down 5 +down 3 +forward 2 +up 1 +forward 8 +up 8 +forward 7 +up 1 +down 7 +forward 7 +forward 5 +forward 3 +up 4 +down 5 +down 5 +forward 3 +forward 9 +down 9 +up 6 +up 7 +down 7 +forward 7 diff --git a/day3.jl b/day3.jl new file mode 100644 index 0000000..585ca35 --- /dev/null +++ b/day3.jl @@ -0,0 +1,68 @@ +using DelimitedFiles + +infile = size(ARGS, 1) > 0 ? ARGS[1] : "day3input.txt" +println("infile = ", infile) + +diags = readdlm(infile, ' ', String) + +n = size(diags, 1) +w = length(diags[1]) + +half_n = n / 2 + +gamma = 0 +epsilon = 0 + +for i in 1:w + global gamma, epsilon + is_one_at_i(s) = s[i] == '1' ? true : false + one_count = size(findall(is_one_at_i, diags), 1) + v = 2^(w-i) + if one_count > half_n + gamma += v + else + epsilon += v + end +end + +println("gamma = ", gamma) +println("epsilon = ", epsilon) +println("prod = ", gamma * epsilon) + +o2gen = view(diags, :) +co2scrub = view(diags, :) + +o2n = n +co2n = n + +for i in 1:w + global o2gen, co2scrub, o2n, co2n + is_one_at_i(s) = s[i] == '1' ? true : false + is_zero_at_i(s) = s[i] == '0' ? true : false + o2idx_ones = findall(is_one_at_i, o2gen) + co2idx_ones = findall(is_one_at_i, co2scrub) + + if length(o2gen) > 1 + if length(o2idx_ones) >= o2n/2 + o2gen = o2gen[o2idx_ones] + else + o2gen = o2gen[findall(is_zero_at_i, o2gen)] + end + o2n = length(o2gen) + end + + if length(co2scrub) > 1 + if length(co2idx_ones) < co2n/2 + co2scrub = co2scrub[co2idx_ones] + else + co2scrub = co2scrub[findall(is_zero_at_i, co2scrub)] + end + co2n = length(co2scrub) + end +end + +o2gen_v = parse(Int, o2gen[1], base=2) +co2scrub_v = parse(Int, co2scrub[1], base=2) +println("o2gen ", o2gen, " ", o2gen_v) +println("co2scrub ", co2scrub, " ", co2scrub_v) +println("prod ", o2gen_v * co2scrub_v) diff --git a/day3input.txt b/day3input.txt new file mode 100644 index 0000000..7948050 --- /dev/null +++ b/day3input.txt @@ -0,0 +1,1000 @@ +011111111101 +011000010111 +000000000101 +000111100001 +011011010000 +001011011100 +111101100010 +010001011011 +010001101001 +101001100011 +111010100010 +110110110110 +110100011110 +001101010010 +110010000000 +110000101111 +111011011010 +010111010010 +011110100010 +000011101001 +001010100111 +001100111100 +101111110110 +101111010101 +110000010111 +000111011000 +110110100001 +010110101010 +100110111011 +010100010111 +010001100001 +110000110111 +111010000101 +100001101110 +111110001100 +001111010100 +100000101011 +100110011110 +111100000001 +001111101100 +000100110010 +001001011010 +010101101110 +110010101010 +001010100010 +101010011011 +001111101111 +100101000001 +010100110011 +011110110000 +001110011010 +011101111111 +111111000000 +101010010101 +101000010101 +011100010110 +111100001101 +011100011001 +010100010001 +010011000000 +000110010001 +101101100100 +011010100101 +010111101100 +111011001101 +000100110011 +101000000111 +010011110011 +000000110000 +000001101000 +010010000111 +010010001101 +110101010110 +000100010110 +101000101010 +000010111111 +110101010001 +101000100010 +001100001111 +101111101011 +110011110000 +101111000000 +111010100001 +100111101101 +000000011010 +100110000111 +000010011100 +100111010001 +111010111101 +110111110100 +010111001001 +010101101100 +111000110000 +000110111111 +011110011011 +101001110000 +000000100101 +000000001000 +000110110001 +001110110011 +111000110111 +101110101010 +101111110011 +101010010111 +101000011011 +011100110100 +000110111110 +010000010110 +010111011111 +110110110100 +110000001100 +011101001001 +101011101111 +011000001110 +111011011110 +100111000110 +001111101101 +000001101101 +001011111000 +001101010110 +011101101100 +001100110011 +100101011011 +111101010011 +100110111100 +111111000010 +100000000011 +110000000100 +011101111011 +111011000000 +111010010101 +010110001101 +110111100100 +101101011101 +011110011111 +000011101010 +001010001101 +110101101110 +111100101101 +100101010101 +001010001011 +111011100010 +010000101111 +101111101111 +101100000100 +101101010001 +010101011111 +001110010111 +010010000100 +111110011011 +011001100111 +110110111100 +110111111110 +001001000010 +000110010100 +001011111011 +111100111100 +011100010111 +010111001110 +111111100101 +001000000110 +111101101100 +000000010100 +110000010100 +011110111010 +111100101011 +111010101110 +010111001101 +011010111110 +000011010111 +011011000100 +110101111100 +000100110111 +000100001001 +111000011000 +000101000101 +100000110100 +110101111011 +011110011001 +111101100000 +010100110111 +101001001101 +100101110001 +111010110111 +010010011010 +011101111000 +101100101111 +010011001000 +011101011000 +100001010101 +001010011011 +001110101010 +000000000001 +110100000010 +111111010110 +100001011110 +011010101011 +101010000000 +101100100110 +010110010101 +001101010011 +011100001001 +000101111110 +000001001011 +111100101110 +010100101010 +001101001111 +010000101100 +110000100111 +110110010111 +011110011000 +110010000001 +101000000010 +101011011101 +010001111101 +111011110111 +101001101001 +100101001110 +101110010100 +001111101000 +101001011011 +111111100011 +110111000011 +100110001110 +111001100001 +100000111000 +011110000101 +000010001000 +011111111011 +001101000000 +101010001001 +010001001001 +001010111100 +011010100110 +011100000001 +001010110101 +110011011010 +001100001010 +000100110001 +111111110111 +111110111011 +101010010001 +010110110001 +001011010100 +100100100101 +000111101000 +111010100000 +100101001111 +010111100001 +001001001011 +111101001110 +011010011111 +100010111000 +111000010111 +100111000100 +010010000000 +010010111101 +001011011110 +110000000000 +001111101010 +010000000111 +111010101100 +000110101010 +010100011000 +101010000011 +101110111100 +110000100010 +000011010011 +000000011101 +101100011001 +000100010111 +110110001001 +101110101101 +110001010100 +001110111011 +010111010101 +111001110101 +100101011111 +011001001100 +110011011111 +100001000000 +110000101000 +100111011111 +110011111011 +101011110011 +111101101010 +100010000010 +110011001001 +110100001010 +111100011001 +100011101010 +101110100010 +110110011000 +101001110011 +000010010011 +101011001001 +010110011010 +111001111110 +101000010010 +010011001101 +010001001100 +110001011000 +000000101101 +001000000101 +001101001011 +001010110000 +100110010010 +110001010110 +010111110110 +010110000101 +000110001011 +011101001100 +001011011011 +000011000110 +010100111110 +010111000110 +101111011110 +110001110111 +001001111110 +010101110000 +011001110101 +101001010101 +111010110000 +110100110110 +001011000001 +001001111101 +110110101100 +010011000001 +110111000001 +011111001000 +100001110101 +000111111110 +111110111010 +000110111000 +100100011000 +010101100111 +101001001011 +001011010111 +100010101000 +000110011001 +101010000010 +001110100110 +000011000010 +010101111100 +101101001110 +111001011001 +110100110101 +111111000101 +100001011000 +100110111000 +101000110001 +001111000100 +110010111101 +011110110011 +111100010100 +110111011001 +011000111110 +111110011100 +101000000100 +000100000010 +100001101010 +110001101010 +100010011000 +100000000111 +011011111011 +001100011101 +101110100110 +011110111011 +001010001100 +111110001010 +110010100101 +010110101100 +001101110110 +001000011010 +100011111100 +101101011100 +001100001101 +101000110000 +000110011010 +111001111010 +011000111100 +000101111100 +001101110001 +101111110010 +101110100001 +110010111111 +000000010011 +000001001101 +010100010010 +100011110001 +101111010000 +101111001101 +011101010101 +000100111111 +110110100110 +010111101001 +001101011111 +010000100010 +110001110000 +110100010101 +001001011000 +101101001100 +011000101001 +111101011100 +100001101111 +101000111000 +110000100001 +000011111101 +101000111100 +101101000001 +010111100110 +101111111001 +011111101000 +100000010111 +100001000010 +011100100000 +110111000111 +011101010001 +111101000110 +110101100011 +000000011011 +010100011100 +010000101001 +010101110001 +001100011111 +010010010000 +011101010110 +011111001101 +011011110011 +000111110111 +110000110001 +101010100101 +100101011010 +000100010011 +100001100010 +000011100101 +110011101011 +010000100100 +010000010100 +101010100001 +101011111000 +000101110101 +010010100011 +100001100011 +100100000111 +010110100101 +100111000001 +101000110101 +110101011011 +000000100111 +000100011011 +111001100110 +001001011100 +011000011010 +010010111000 +010111011001 +011100101100 +000100011101 +010010110000 +011011001001 +010010101111 +001001110101 +101100011000 +100111000010 +011100100011 +000010110001 +111110010100 +100110100110 +101101010111 +111010011010 +101000111110 +010001101110 +001010110110 +101010011010 +001111100000 +101000010000 +100101110101 +100010110100 +111001110010 +111000110001 +000101011011 +101110010000 +011100110000 +100101010110 +111001010111 +000100100110 +000010101001 +101010001011 +000011101000 +000010111011 +111111100110 +001110111111 +111001001010 +000101101000 +110010011010 +101010101011 +011010011100 +010111011010 +000110101000 +011010100000 +111100000101 +010100101100 +001110000010 +111010011111 +100110111001 +011111001010 +001110101110 +010011110010 +001111001101 +000001111000 +011010110101 +001101110111 +110010000010 +100111111101 +000111000011 +000101101101 +010101001000 +111011110000 +000001111110 +001001000011 +100100011001 +000011110001 +001111110111 +001011111111 +011110010001 +010000110000 +111111111010 +101001000001 +000100000111 +110100001100 +111000110010 +000000000110 +111111100000 +001111111000 +110111111101 +000110101111 +111100001111 +100010101001 +000100101011 +100011110101 +111101100110 +001111000010 +010000000011 +101001100010 +100100101101 +000111110000 +010011100000 +111001100100 +100011011110 +110111001111 +010101001111 +011011110110 +100000010010 +001101011010 +001001101100 +001010010000 +001111110101 +110011011110 +001000101100 +010001111010 +010111000000 +100110110101 +110001001001 +010001010011 +100101000100 +011000000000 +100011110100 +011101101010 +010101000011 +001101011100 +001000011011 +011001110010 +000010000000 +000101010000 +001101111110 +011010000101 +110101001010 +010001111000 +111000110100 +001110000000 +010001001110 +111001111100 +010110100010 +001100011000 +101110111111 +010011010100 +100001101101 +011011001101 +111000101011 +100111010110 +101000000101 +111110001110 +010001001111 +001000101101 +000011111110 +100100010011 +011110111000 +010000001110 +111001011110 +001101001010 +010101000001 +011000101111 +101100010010 +000000000000 +010110110111 +101011001010 +101010110101 +001000110001 +100101100101 +101000110100 +110101111111 +010000111111 +111010010110 +101010100111 +001011001111 +010101010101 +110101010011 +111101010111 +001110110010 +000010010010 +011100001100 +010111110100 +011011100010 +101111101110 +111000000100 +111001110100 +110010111110 +111011100000 +001111010111 +101100100001 +110111011110 +111111001101 +100111001101 +111110110100 +101101000111 +110001100101 +110110000010 +101101100011 +110111110001 +011011101100 +011011101110 +100001011100 +001100111001 +100110001100 +011101100101 +101110000001 +001111111110 +101110111010 +111101011011 +100000110000 +110010110100 +001110100010 +011011001000 +100101111011 +010100111100 +101110110000 +001010101010 +001011010010 +111000111100 +111010101111 +010100001100 +001100101111 +001011010001 +101100001110 +010101110010 +110001001010 +000010101010 +111000001000 +100111011011 +110000000101 +011000011011 +000101111111 +010100011011 +001110111101 +100001000111 +111010000011 +001101111011 +011100101111 +010101010111 +111001010011 +011011111100 +110001101100 +010110010011 +101000100000 +010010011100 +101000110010 +101100011010 +101011011001 +111101011110 +001111100111 +101010101000 +001110110111 +000000111110 +101101101010 +010010001110 +010010100001 +110010011111 +010000001001 +011100001110 +111000001111 +010001111111 +111101101111 +010010110110 +100101010111 +110100000111 +110100010000 +101010010010 +100111100100 +000010000001 +101110010010 +101001010100 +101101101011 +010101011000 +110101011010 +111011010110 +110100100001 +011011011010 +010101001101 +110101000011 +111010110101 +110100111001 +101011000110 +010101110110 +010110100000 +101101101100 +111101010100 +010110010010 +011000111101 +011100100100 +000000001111 +011101011110 +011111001100 +111110100101 +001100001001 +000101100101 +101101100111 +010101010001 +000111001000 +011001110011 +101101111110 +110110111101 +000010011110 +001000110111 +110001101000 +111101010001 +111001110011 +100111101110 +011100110011 +011110001100 +100001100000 +100011100000 +011100000111 +001101000101 +111001010101 +001001010000 +000010101011 +011001101000 +100000000000 +100101011001 +100000100110 +100000111100 +001110110001 +111111111111 +100111110011 +110000011000 +111010000110 +000010001001 +101111100001 +110100100110 +011001000001 +101011100101 +001110100100 +000110011111 +010110011000 +110000100011 +101101111001 +100101101010 +111110110001 +100101000000 +010001110111 +011001010011 +011010001011 +001010101000 +011100001000 +001001110011 +001110000001 +010101011010 +000100100101 +100110110110 +001011111101 +011101001110 +100100111110 +110100111101 +010100111001 +011010001101 +000111100101 +010011001111 +010011001011 +111101010110 +000100011001 +100110101111 +111000111101 +110101000101 +010110001001 +001001100001 +101010101010 +011011101011 +000001101111 +111000011101 +101001010011 +011101001101 +111011111100 +010001010100 +110000101010 +111010000100 +011001100110 +011011011110 +010111001100 +111110010111 +100100001000 +110011110010 +100101110110 +101011111100 +000010110100 +001010110001 +011111111100 +010101100010 +001101010101 +000101001000 +000101101100 +110110100101 +010111001111 +100100001001 +111000100110 +011000110010 +111100011111 +100100110110 +111100100110 +111111010111 +000111100110 +111100010000 +110101100010 +001111100101 +010001001000 +000000001110 +101001000110 +011100000101 +011101110101 +010100101101 +110110101011 +001011110010 +001010011100 +100010111010 +011011111111 +011101101101 +100010110010 +111111001111 +100110010100 +010011000011 +100101111110 +101100101000 +011010011011 +100001000100 +001000111101 +101001111000 +100001110011 +100111101001 +101110001010 +010110011001 +110010101111 +011101000001 +110000100100 +100000111001 +101010011000 +101011000010 +001100010110 +011010111000 +110010010000 +100101110000 +001111110010 +110011010100 +011110101101 +010101011011 +110111011111 +000010100010 +000101111010 +010010010111 +011010111101 +010101111010 +111001000100 +100001100101 +111010001010 +110001111011 +111100011110 +100011111011 +011111110111 +010000101101 +010100001001 +001000110000 +001011010110 +010001100110 +101000001000 +101100110110 +010011101000 +000111111001 +110101011101 +010000100110 +100011011000 +110110000011 +001001001010 +001000101010 +000001111101 +111111011000 +111000111011 +110011110101 +101111111100 +110010111011 +001011010011 +001001011001 +100101111111 +010100110101 +100100101011 +011111100110 +001011110111 +111110101111 +000101100100 +111101001100 +110011101000 +101110001000 +010011100001 +110000111101 +011010010110 +000011101100 +011111100000 +110100000011 +011110111101 +010000011110 +100000011011 +001111011111 +000111011111 +111001111101 +011101010000 +011010101100 +110100100100 +000011011100 +101011110110 +011100111001 +100101010010 +111011110101 +110011000000 +101001100111 +101110011110 +000101000000 +110101111010 +111000010110 +100010110110 +100110000110 +010000100011 +100001111011 +110111000110 +010110101101 +111100111000 +010110000100 +011110010011 +001011011000 +101000101000 +100111110000 +111101110101 +101110011000 +011001110110 +111110010011 +100001011010 +011110111111 +011101110111 +100111110101 +101110111110 +010111000111 +011001111011 +001110101100 +011011101101 +000111000001 +101001111001 +110001010001 +011001001011 +001101011000 +001010010010 +011100111101 +110111001100 +010011011010 +001001100100 +100101111101 +100110001010 +110101011001 +110011101010 +001111111100 +100011000000 +000111001101 +010010010101 +010110000000 +100111111100 diff --git a/day3test.txt b/day3test.txt new file mode 100644 index 0000000..a6366a8 --- /dev/null +++ b/day3test.txt @@ -0,0 +1,12 @@ +00100 +11110 +10110 +10111 +10101 +01111 +00111 +11100 +10000 +11001 +00010 +01010