diff --git a/01/input.txt b/01/input.txt new file mode 100644 index 0000000..1278c07 --- /dev/null +++ b/01/input.txt @@ -0,0 +1,2000 @@ +169 +150 +158 +163 +167 +151 +152 +153 +154 +159 +168 +176 +182 +183 +188 +182 +183 +184 +185 +195 +199 +198 +196 +211 +212 +202 +203 +208 +205 +204 +205 +226 +208 +191 +193 +195 +199 +200 +198 +200 +199 +214 +241 +247 +242 +238 +227 +228 +236 +238 +242 +246 +248 +236 +243 +259 +261 +262 +265 +264 +273 +277 +279 +275 +279 +295 +290 +296 +288 +285 +297 +296 +311 +321 +346 +351 +361 +391 +395 +401 +397 +410 +415 +417 +422 +400 +396 +425 +421 +426 +427 +429 +430 +462 +461 +462 +467 +475 +479 +481 +483 +487 +494 +496 +511 +510 +511 +514 +524 +530 +532 +522 +505 +516 +502 +489 +488 +501 +503 +479 +500 +503 +507 +514 +522 +532 +533 +535 +540 +541 +545 +530 +526 +520 +521 +522 +530 +525 +511 +525 +528 +525 +528 +530 +534 +536 +563 +565 +577 +578 +586 +596 +598 +601 +593 +618 +619 +615 +612 +621 +623 +619 +622 +623 +618 +634 +640 +647 +639 +662 +679 +680 +673 +676 +664 +653 +652 +653 +656 +671 +674 +682 +684 +688 +689 +691 +687 +695 +692 +701 +699 +700 +704 +708 +706 +734 +733 +732 +722 +734 +733 +739 +738 +757 +743 +747 +759 +755 +754 +767 +774 +772 +771 +789 +803 +819 +821 +831 +827 +830 +833 +836 +808 +806 +809 +827 +834 +844 +873 +883 +875 +874 +875 +876 +874 +875 +864 +861 +863 +866 +878 +840 +851 +862 +880 +881 +882 +894 +893 +905 +902 +912 +927 +922 +900 +920 +909 +910 +909 +907 +908 +912 +942 +941 +944 +945 +939 +961 +965 +933 +935 +934 +933 +912 +913 +914 +919 +926 +920 +931 +932 +933 +920 +922 +921 +920 +919 +920 +923 +932 +930 +918 +914 +908 +923 +938 +952 +946 +951 +953 +952 +957 +966 +964 +963 +961 +962 +961 +991 +995 +1015 +1013 +1025 +1023 +1019 +1021 +1041 +1048 +1053 +1047 +1061 +1060 +1088 +1092 +1096 +1098 +1116 +1085 +1082 +1069 +1068 +1069 +1067 +1072 +1077 +1093 +1084 +1102 +1093 +1099 +1082 +1097 +1096 +1101 +1088 +1089 +1077 +1058 +1068 +1071 +1072 +1083 +1074 +1087 +1094 +1093 +1094 +1095 +1099 +1100 +1102 +1104 +1107 +1102 +1104 +1093 +1104 +1101 +1115 +1122 +1121 +1098 +1097 +1094 +1124 +1123 +1120 +1118 +1123 +1125 +1097 +1098 +1101 +1072 +1068 +1067 +1093 +1095 +1100 +1108 +1097 +1115 +1125 +1126 +1128 +1151 +1152 +1151 +1150 +1163 +1162 +1159 +1162 +1158 +1162 +1153 +1145 +1144 +1155 +1165 +1156 +1161 +1151 +1152 +1149 +1150 +1152 +1153 +1157 +1148 +1147 +1140 +1151 +1157 +1154 +1153 +1166 +1163 +1173 +1174 +1173 +1198 +1199 +1208 +1212 +1213 +1200 +1213 +1215 +1214 +1216 +1232 +1205 +1215 +1216 +1241 +1240 +1238 +1244 +1250 +1244 +1246 +1256 +1264 +1263 +1265 +1260 +1259 +1269 +1258 +1262 +1259 +1260 +1263 +1234 +1240 +1242 +1246 +1245 +1227 +1228 +1229 +1210 +1213 +1214 +1216 +1213 +1200 +1206 +1220 +1219 +1189 +1193 +1184 +1183 +1179 +1184 +1189 +1175 +1176 +1177 +1186 +1187 +1192 +1199 +1227 +1225 +1226 +1232 +1233 +1232 +1239 +1256 +1251 +1267 +1273 +1263 +1260 +1241 +1257 +1258 +1260 +1259 +1268 +1296 +1294 +1302 +1304 +1297 +1289 +1294 +1291 +1261 +1257 +1260 +1268 +1275 +1295 +1301 +1306 +1307 +1311 +1310 +1298 +1305 +1306 +1305 +1296 +1282 +1285 +1304 +1306 +1309 +1307 +1313 +1318 +1315 +1318 +1314 +1307 +1306 +1285 +1287 +1288 +1289 +1290 +1291 +1292 +1293 +1295 +1305 +1321 +1320 +1305 +1299 +1301 +1309 +1316 +1327 +1325 +1327 +1333 +1318 +1338 +1341 +1338 +1355 +1351 +1347 +1345 +1348 +1361 +1368 +1364 +1355 +1351 +1339 +1338 +1341 +1346 +1343 +1342 +1343 +1342 +1339 +1341 +1342 +1352 +1382 +1386 +1397 +1399 +1376 +1378 +1379 +1380 +1382 +1359 +1356 +1372 +1385 +1380 +1375 +1373 +1371 +1376 +1363 +1369 +1372 +1370 +1388 +1389 +1393 +1386 +1380 +1382 +1387 +1398 +1402 +1409 +1415 +1419 +1429 +1445 +1425 +1434 +1432 +1433 +1432 +1433 +1465 +1466 +1460 +1473 +1470 +1475 +1476 +1483 +1480 +1467 +1463 +1468 +1466 +1467 +1466 +1467 +1459 +1461 +1485 +1487 +1488 +1490 +1462 +1477 +1481 +1491 +1506 +1505 +1506 +1518 +1517 +1523 +1531 +1515 +1505 +1506 +1504 +1507 +1513 +1529 +1533 +1538 +1535 +1565 +1566 +1577 +1578 +1601 +1598 +1597 +1585 +1580 +1581 +1574 +1577 +1573 +1608 +1609 +1612 +1621 +1629 +1630 +1636 +1645 +1649 +1664 +1668 +1674 +1676 +1675 +1674 +1666 +1668 +1671 +1690 +1704 +1698 +1702 +1703 +1715 +1689 +1686 +1680 +1683 +1697 +1696 +1689 +1688 +1694 +1693 +1694 +1715 +1714 +1718 +1717 +1713 +1711 +1712 +1748 +1749 +1757 +1756 +1758 +1763 +1762 +1760 +1762 +1744 +1730 +1723 +1736 +1733 +1757 +1745 +1752 +1748 +1755 +1754 +1761 +1753 +1741 +1740 +1739 +1759 +1747 +1748 +1758 +1770 +1768 +1783 +1776 +1760 +1747 +1754 +1753 +1765 +1767 +1757 +1756 +1758 +1757 +1760 +1769 +1767 +1769 +1782 +1786 +1799 +1796 +1793 +1797 +1808 +1811 +1805 +1804 +1797 +1801 +1791 +1796 +1791 +1795 +1792 +1793 +1822 +1827 +1823 +1839 +1831 +1847 +1851 +1852 +1857 +1846 +1850 +1841 +1842 +1845 +1846 +1847 +1846 +1848 +1849 +1852 +1851 +1852 +1850 +1849 +1850 +1849 +1848 +1864 +1879 +1889 +1900 +1915 +1905 +1899 +1900 +1916 +1917 +1916 +1893 +1914 +1927 +1926 +1923 +1926 +1939 +1936 +1915 +1926 +1942 +1943 +1944 +1935 +1934 +1936 +1937 +1936 +1932 +1936 +1943 +1954 +1953 +1958 +1951 +1959 +1958 +1957 +1958 +1959 +1957 +1963 +1973 +1976 +1991 +1995 +2023 +2027 +2034 +2037 +2039 +2040 +2024 +2033 +2034 +2027 +2029 +2046 +2069 +2071 +2078 +2083 +2082 +2093 +2092 +2096 +2075 +2041 +2038 +2062 +2059 +2060 +2061 +2070 +2084 +2079 +2071 +2069 +2059 +2061 +2062 +2065 +2064 +2080 +2081 +2089 +2074 +2075 +2076 +2089 +2093 +2085 +2086 +2080 +2065 +2093 +2102 +2101 +2097 +2109 +2113 +2121 +2122 +2121 +2120 +2147 +2144 +2152 +2145 +2146 +2171 +2159 +2160 +2162 +2166 +2162 +2164 +2158 +2156 +2157 +2159 +2177 +2183 +2174 +2173 +2176 +2179 +2172 +2171 +2154 +2177 +2141 +2142 +2156 +2142 +2145 +2137 +2138 +2151 +2155 +2156 +2155 +2140 +2145 +2120 +2108 +2117 +2124 +2133 +2138 +2137 +2105 +2067 +2077 +2074 +2068 +2071 +2072 +2068 +2069 +2077 +2072 +2075 +2083 +2114 +2116 +2113 +2112 +2131 +2124 +2130 +2129 +2130 +2134 +2136 +2135 +2142 +2171 +2127 +2129 +2140 +2149 +2162 +2161 +2165 +2140 +2168 +2170 +2171 +2177 +2193 +2195 +2200 +2207 +2209 +2210 +2216 +2214 +2217 +2214 +2226 +2235 +2238 +2240 +2245 +2246 +2248 +2258 +2291 +2293 +2295 +2294 +2276 +2307 +2308 +2327 +2328 +2307 +2305 +2306 +2312 +2313 +2322 +2320 +2338 +2354 +2359 +2361 +2362 +2365 +2362 +2350 +2349 +2348 +2341 +2345 +2341 +2338 +2315 +2313 +2316 +2324 +2322 +2325 +2331 +2327 +2333 +2335 +2334 +2335 +2321 +2307 +2305 +2292 +2261 +2262 +2265 +2310 +2311 +2331 +2325 +2316 +2319 +2325 +2331 +2328 +2327 +2340 +2302 +2306 +2307 +2308 +2310 +2311 +2337 +2336 +2321 +2318 +2319 +2311 +2312 +2325 +2326 +2327 +2325 +2317 +2327 +2315 +2314 +2317 +2340 +2341 +2343 +2345 +2343 +2339 +2337 +2339 +2350 +2329 +2331 +2348 +2349 +2357 +2350 +2343 +2339 +2340 +2342 +2329 +2328 +2340 +2332 +2331 +2315 +2321 +2320 +2319 +2321 +2322 +2312 +2313 +2328 +2347 +2346 +2347 +2337 +2341 +2338 +2343 +2342 +2332 +2335 +2343 +2365 +2362 +2364 +2352 +2353 +2354 +2346 +2348 +2351 +2352 +2355 +2350 +2351 +2339 +2360 +2365 +2364 +2366 +2369 +2368 +2366 +2372 +2362 +2370 +2371 +2370 +2371 +2377 +2376 +2381 +2380 +2379 +2362 +2355 +2370 +2376 +2372 +2364 +2363 +2360 +2356 +2348 +2338 +2340 +2341 +2349 +2346 +2339 +2338 +2330 +2333 +2328 +2316 +2314 +2324 +2338 +2341 +2318 +2321 +2346 +2347 +2317 +2321 +2315 +2324 +2326 +2333 +2347 +2348 +2333 +2345 +2352 +2353 +2352 +2355 +2358 +2359 +2367 +2369 +2375 +2365 +2358 +2371 +2374 +2386 +2416 +2418 +2416 +2408 +2409 +2442 +2443 +2446 +2453 +2444 +2490 +2493 +2498 +2493 +2488 +2494 +2495 +2506 +2505 +2508 +2513 +2509 +2502 +2500 +2498 +2515 +2513 +2514 +2513 +2524 +2525 +2534 +2530 +2547 +2530 +2524 +2527 +2523 +2522 +2526 +2528 +2527 +2528 +2547 +2530 +2527 +2530 +2528 +2511 +2493 +2520 +2512 +2490 +2482 +2476 +2456 +2455 +2451 +2452 +2435 +2436 +2425 +2426 +2430 +2441 +2445 +2438 +2445 +2440 +2446 +2445 +2446 +2434 +2433 +2414 +2435 +2434 +2432 +2415 +2384 +2386 +2387 +2400 +2402 +2392 +2388 +2394 +2396 +2377 +2354 +2358 +2370 +2371 +2367 +2368 +2382 +2381 +2385 +2395 +2381 +2356 +2332 +2334 +2348 +2355 +2354 +2371 +2367 +2365 +2374 +2372 +2371 +2374 +2371 +2363 +2375 +2376 +2377 +2418 +2436 +2451 +2435 +2424 +2427 +2459 +2474 +2471 +2469 +2475 +2486 +2491 +2493 +2486 +2472 +2474 +2475 +2472 +2465 +2430 +2442 +2444 +2442 +2443 +2442 +2450 +2451 +2463 +2456 +2445 +2436 +2456 +2464 +2456 +2462 +2463 +2462 +2464 +2468 +2477 +2481 +2482 +2479 +2489 +2494 +2493 +2504 +2505 +2509 +2485 +2484 +2473 +2501 +2512 +2511 +2514 +2511 +2512 +2536 +2543 +2545 +2533 +2535 +2530 +2536 +2544 +2552 +2553 +2557 +2555 +2565 +2561 +2558 +2556 +2555 +2573 +2575 +2576 +2561 +2565 +2566 +2538 +2529 +2530 +2529 +2530 +2538 +2549 +2555 +2556 +2562 +2561 +2562 +2560 +2557 +2576 +2579 +2596 +2598 +2599 +2601 +2612 +2648 +2649 +2648 +2647 +2645 +2642 +2638 +2651 +2658 +2657 +2664 +2663 +2653 +2654 +2662 +2663 +2661 +2660 +2655 +2644 +2645 +2646 +2652 +2663 +2657 +2661 +2655 +2659 +2662 +2675 +2677 +2678 +2688 +2687 +2679 +2678 +2685 +2689 +2691 +2702 +2692 +2691 +2694 +2709 +2712 +2710 +2711 +2709 +2708 +2707 +2711 +2714 +2715 +2729 +2733 +2720 +2723 +2729 +2734 +2698 +2690 +2693 +2688 +2704 +2710 +2717 +2718 +2716 +2730 +2771 +2761 +2777 +2778 +2776 +2777 +2779 +2794 +2795 +2796 +2799 +2807 +2816 +2818 +2819 +2814 +2816 +2824 +2848 +2844 +2838 +2835 +2836 +2849 +2851 +2852 +2856 +2859 +2862 +2863 +2867 +2866 +2878 +2884 +2883 +2892 +2898 +2897 +2896 +2908 +2901 +2886 +2885 +2899 +2897 +2900 +2898 +2894 +2924 +2898 +2903 +2898 +2900 +2909 +2908 +2907 +2895 +2924 +2933 +2916 +2914 +2901 +2895 +2897 +2903 +2907 +2898 +2899 +2905 +2906 +2905 +2906 +2897 +2905 +2909 +2908 +2914 +2915 +2907 +2911 +2919 +2926 +2927 +2953 +2963 +2966 +2967 +2984 +2997 +2996 +3003 +2996 +3007 +3008 +3012 +3029 +3028 +3031 +3029 +3030 +3031 +3003 +2999 +3013 +3005 +2984 +2997 +2996 +2997 +3003 +2990 +2989 +2990 +2993 +2992 +2996 +3005 +3009 +3008 +3026 +3029 +3024 +3035 +3039 +3057 +3058 +3059 +3053 +3063 +3062 +3065 +3069 +3071 +3063 +3064 +3066 +3080 +3079 +3077 +3099 +3098 +3099 +3102 +3105 +3108 +3114 +3102 +3103 +3105 +3075 +3076 +3085 +3086 +3088 +3086 +3078 +3079 +3076 +3070 +3076 +3078 +3091 +3092 +3100 +3103 +3105 +3095 +3101 +3106 +3095 +3098 +3102 +3103 +3104 +3106 +3113 +3112 +3114 +3111 +3128 +3132 +3129 +3127 +3131 +3139 +3142 +3143 +3145 +3152 +3163 +3153 +3150 +3153 +3168 +3165 +3157 +3179 +3178 +3166 +3164 +3165 +3180 +3182 +3180 +3184 +3190 +3191 +3192 +3176 +3189 +3191 +3183 +3185 +3203 +3213 +3212 +3207 +3208 +3205 +3197 +3191 +3192 +3196 +3198 +3215 +3196 +3197 +3173 +3170 +3176 +3194 +3212 +3213 +3214 +3224 +3223 +3230 +3244 +3245 +3249 +3250 +3264 +3263 +3265 +3266 +3263 +3265 +3267 +3279 +3278 +3257 +3255 +3287 +3288 +3313 +3311 +3310 +3308 +3311 +3315 +3327 +3304 +3303 +3324 +3325 +3324 +3325 +3337 +3344 +3341 +3345 +3344 +3343 +3339 +3334 +3332 +3331 +3326 +3325 +3326 +3336 +3332 +3333 +3349 +3348 +3349 +3348 +3349 +3353 +3363 +3362 +3377 +3374 +3378 +3351 +3360 +3379 +3386 +3376 +3368 +3365 +3364 +3379 +3387 +3386 +3393 +3383 +3354 +3359 +3361 +3366 +3368 +3365 +3369 +3388 +3431 +3433 +3432 +3429 +3430 +3431 +3426 +3427 +3431 +3424 +3443 +3441 +3440 +3447 +3458 +3439 +3437 +3436 +3429 +3430 +3440 +3454 +3448 +3463 +3460 +3461 +3462 +3463 +3461 +3482 +3492 +3491 +3492 +3498 +3504 +3487 +3490 +3483 +3484 +3477 +3486 +3481 +3480 +3490 +3498 +3502 +3501 +3480 +3481 +3489 +3488 +3492 +3475 +3485 +3483 +3480 +3481 +3473 +3478 +3466 +3465 +3471 +3482 +3481 +3490 +3501 +3500 +3503 +3497 +3501 +3496 +3472 +3479 +3463 +3454 +3463 +3458 +3436 +3469 +3460 +3461 +3462 +3464 +3454 +3453 +3448 +3449 +3445 +3447 +3449 +3451 +3450 +3464 +3470 +3471 +3472 +3482 +3487 +3489 +3482 +3481 +3496 +3501 +3503 +3498 +3497 +3499 +3527 +3530 +3524 +3504 +3494 +3499 +3497 +3489 +3507 +3512 +3535 +3536 +3525 +3536 +3554 +3535 +3534 +3535 +3537 +3541 +3542 +3541 +3543 +3540 +3542 +3539 +3549 +3547 +3535 +3532 +3539 +3540 +3557 +3558 +3575 +3576 +3586 +3588 diff --git a/01/solution.py b/01/solution.py new file mode 100644 index 0000000..e4de066 --- /dev/null +++ b/01/solution.py @@ -0,0 +1,24 @@ +with open('input.txt') as f: + numbers = f.readlines() + +increases = 0 +first = int(numbers[0]) +for i in numbers[1:]: + second = int(i) + if second > first: + increases += 1 + first = second + +print(increases) + +increases = 0 +numbers = [int(i) for i in numbers] +i = 0 +first = sum(numbers[i:i+3]) +for i in range(len(numbers) - 3): + second = sum(numbers[i+1:i+4]) + if second > first: + increases += 1 + first = second + +print(increases)