tangled
alpha
login
or
join now
nove.dev
/
aoc-2025
1
fork
atom
:)
1
fork
atom
overview
issues
pulls
pipelines
day6 part1
nove.dev
3 months ago
b88975d9
cd643442
+96
4 changed files
expand all
collapse all
unified
split
input
day6.test.txt
day6.txt
src
day6.rs
lib.rs
+4
input/day6.test.txt
···
1
1
+
123 328 51 64
2
2
+
45 64 387 23
3
3
+
6 98 215 314
4
4
+
* + * +
+5
input/day6.txt
···
1
1
+
44 18 45 2119 29 9 8 525 2 8 59 9286 858 26 969 666 78 1 33 54 4862 9696 9717 49 538 9887 38 6 48 5 556 576 48 195 7 5 14 89 58 5 79 5453 26 66 52 898 2785 68 957 355 13 45 535 2 371 18 172 98 8 979 1 16 84 4468 15 3 98 53 75 7 89 6518 62 414 278 24 79 7662 4 7 6218 729 5184 33 878 92 89 38 336 747 39 828 41 91 252 234 967 521 512 41 47 33 812 3378 916 76 347 49 26 755 8 2 9832 1682 49 5286 78 1 4172 64 39 479 8 5995 857 37 97 6 392 5 4 53 636 525 82 94 69 95 272 969 46 8 9 431 38 69 134 196 1 664 443 36 2 4 95 159 571 926 5 857 63 62 65 2423 54 929 99 915 16 5 6 791 5 82 13 1 7 91 491 64 353 53 61 2 98 35 2 585 278 45 536 76 81 26 95 51 985 5 567 9 496 46 973 5 1 14 7 75 15 9785 523 98 9 4 87 61 59 5 75 47 5 6873 4 411 32 888 8 2321 29 98 8 61 611 24 63 647 394 174 93 62 51 149 398 875 68 62 57 43 11 52 312 97 82 4 6 2 41 65 35 83 42 633 19 286 199 18 44 7946 72 6799 442 558 3 9 48 97 986 519 7845 111 2314 914 494 9 62 383 22 464 42 92 468 99 78 194 21 64 665 72 1 68 1 76 67 5 339 42 428 97 1 48 88 45 381 66 654 291 882 78 11 2854 15 87 285 7 2 77 2 35 935 6 27 31 8466 467 7164 1378 8 4 24 663 7937 7 3 86 189 763 7 6 993 7 21 727 7 993 92 78 55 574 55 31 91 5933 24 186 82 63 48 193 68 5 326 82 36 25 3 9 788 179 5254 98 333 98 52 61 334 13 85 6294 336 9357 56 88 435 7286 991 849 3 49 922 936 95 21 99 62 472 7391 465 36 2 2116 72 14 4297 11 5 68 44 5 742 51 76 4 45 42 95 474 32 2 53 85 8989 42 42 34 54 12 739 695 228 82 9 6 241 6 64 141 699 99 3 524 25 8979 944 29 487 456 514 16 218 1322 2 797 3727 99 37 471 57 911 45 9 733 5 11 831 5 34 553 69 46 17 1 53 39 685 3 46 695 442 5 4 8 3 9717 78 19 7 417 26 4 28 814 96 8278 47 53 48 47 93 371 2 4 53 1573 974 2293 56 26 3 4 856 93 85 867 62 1 43 73 4 7 3 882 86 37 16 341 1 4 61 63 67 35 44 6 894 399 5 948 5 24 5 3 56 1523 13 463 43 362 51 737 84 21 21 9316 391 51 54 5 596 67 2 7 9 65 486 4 94 111 25 28 7 57 342 498 186 35 94 53 644 898 1782 56 142 27 4 592 995 88 515 163 32 261 83 7 5936 9 956 52 94 855 59 42 74 67 76 66 684 264 16 18 88 9215 42 6 126 72 58 32 54 43 556 42 982 44 785 4 53 915 26 936 6 3 9364 363 84 5144 2 1 185 12 899 89 879 438 9 5 9 57 1 6 35 1929 6572 36 12 26 34 6 8895 77 11 6 79 715 282 67 81 579 81 21 48 965 833 488 4 2844 863 89 9 729 42 64 37 86 22 58 2 1 69 9 99 37 33 447 34 2 74 64 7 1 6 53 71 1647 4 399 2 71 13 61 7448 266 3 67 39 1 6 9213 81 697 62 66 394 31 6 6 99 83 491 35 983 79 975 82 4 49 6 744 34 12 32 469 679 9 4 67 631 296 968 8 55 4 53 46 2 81 78 2 761 66 22 717 8 52 49 55 26 883 72 58 63 28 9 883 5513 55 128 45 86 8 72 233 599 2852 14 2 31 93 9 42 6 7 24 74 6 63 277 22 381 633 312 22 41 69 97 31 567 39 66 77 59 8 434 36 16 6331 8 67 6 69 486 498 742 591 44 958 323 8511 13 18 54 68 5 651 818 836 94 4 97 1763 62 33 1991 999 184 17 968 2 5 3 31 98 9626 79 4 9461 25 738 891 14 4 684 21 2213 85 578 72 45 5 7 545 3448 98 14 47 47 91 4 797 846 6 98 857 21 5 327 1 23 62 74 2526 127 446 536 733 441 369 922 78 129 574 89 379 667 885 53 4 3 2 51 96 82 734 772 19 6 748 779 27 73 53 52 19 98 75 28 9892 39 21 6 37 296 154 994 561 981 73 968 6 69 723 28 6374 69 95 6389 74 12 35 2 2426 237 4 31 7 29 9112 722 12 35 33 692 939 8 89 3666 628 22 233 17 8 17 1 11 83 9 68 2 369 895 53 4 67 4 245 59 4 331 77 469 2
2
2
+
658 599 87 246 24 36 41 664 71 61 91 7952 771 548 574 655 82 19 23 795 4775 825 7441 41 446 8624 35 8 21 42 156 585 23 2956 95 888 44 74 18 82 776 4999 37 74 28 956 8285 32 391 322 86 539 263 14 2465 18 672 87 42 2616 5 91 78 3273 61 8 57 59 93 69 45 7985 87 331 511 97 77 7695 2 92 8336 598 2953 41 74 79 88 76 669 573 423 54 76 563 72 472 631 359 791 42 81 75 512 563 4241 25 672 81 741 128 44 82 126 1884 34 3337 39 25 4825 824 24 356 82 8627 956 528 58 56 85 691 15 31 1272 123 58 41 45 74 232 573 93 13 96 331 73 84 593 559 36 359 72 11 38 91 897 923 346 622 55 8317 52 32 17 849 97 275 75 929 76 91 36 22 75 96 51 98 82 55 483 855 193 43 55 2 75 25 76 327 728 94 646 177 15 55 363 39 865 1 363 66 9462 53 565 7 1 16 4 35 64 8919 756 81 58 1 57 355 72 122 29 87 44 711 18 766 86 452 355 4897 1 82 2 69 564 97 39 949 17 21 986 34 22 192 77 323 35 68 393 93 765 46 93 23 66 4 16 643 995 75 75 54 812 373 482 955 135 71 55 3649 38 4411 94 216 4 6 6 32 143 658 9193 764 7736 939 297 84 42 246 36 653 73 26 624 27 8 197 836 784 466 3 925 57 746 87 28 713 982 21 355 45 66 113 64 96 688 929 429 955 732 46 423 9548 4664 11 311 9 1 22 43 8 132 2 15 48 4121 359 316 746 3 2 45 869 8284 21 273 22 925 474 62 4 8 728 889 827 34 525 26 18 61 372 87 3311 661 3661 81 268 65 26 31 519 82 83 994 19 54 96 33 75 622 154 722 48 589 19 71 77 724 24 31 8459 565 7127 426 97 242 8351 613 849 88 48 988 462 4155 25 46 134 1649 6537 521 217 1 3533 92 64 453 74 55 11 31 99 498 67 84 89 7214 75 31 441 9785 2 116 81 3589 49 43 62 26 694 85 714 263 42 366 9 492 71 51 99 7491 73 4 214 88 238 128 21 587 36 25 36 2736 9233 7 851 3976 43 44 797 39 526 16 24 563 8 72 739 27 19 2311 49 24 99 55 62 34 669 47 569 511 958 89 11 7 4 6889 37 92 5563 644 54 33 32 269 38 2353 52 61 69 83 626 592 3 4 64 8512 879 7914 72 17 12 49 911 62 3 4879 16 89 99 81 51 416 9 513 47 16 315 648 99 9648 97 78 45 42 28 2 45 144 95 791 97 86 3 17 99 5986 53 355 999 829 964 681 96 27 27 6547 577 83 92 8 42 91 11 1 1 18 327 5 62 724 3692 47 1 25 583 253 924 62 9356 76 632 165 9441 81 985 87 7 981 3871 61 121 817 978 729 17 74 4416 26 989 57 88 856 6 96 96 46 62 35 317 526 4 35 55 3888 94 6 477 45 731 375 61 61 599 77 64 89 662 4 79 788 31 436 792 83 3471 713 36 1435 58 7 631 24 397 96 52 285 93 322 88 66 93 2 22 856 4624 637 53 27 84 19 5487 752 73 15 54 993 269 39 9 818 95 22 246 355 971 726 49 2194 237 48 929 116 62 39 36 49 2 25 632 12 7434 48 52 59 58 387 55 944 72 48 76 55 78 69 76 8583 4 441 17 1 42 6 6269 9681 322 94 56 765 69 6713 38 797 35 17 2375 92 58 25 59 38 288 53 99 959 139 749 74 19 62 1232 99 56 87 9944 443 32 11 11 283 252 831 572 5996 684 36 26 86 844 76 28 21 49 994 759 44 71 46 452 323 244 61 34 84 76 82 224 8967 66 582 28 44 4 97 2526 737 5997 42 317 556 19 855 5698 95 6 68 699 21 6 76 79 742 34 142 53 18 35 95 34 586 74 73 36 88 381 427 764 81 2693 6 64 63 32 814 571 492 538 74 667 8447 2691 95 86 84 11 45 153 586 944 85 86 83 4486 849 47 8798 178 834 54 6 268 7 296 41 69 9964 5353 39 5384 75 896 535 279 7 459 983 2378 6919 941 823 11 63 665 859 7934 14 5 17 82 14 94 461 499 14 56 74 59 256 983 72 56 86 12 836 787 22 594 928 551 645 812 75 124 828 45 537 389 328 266 3 3 2 16 476 68 513 751 95 87 623 8112 33 44 32 74 71 94 21 37 4892 596 751 1 93 917 488 741 496 71 33 157 71 96 981 15 4737 58 266 9651 25 993 43 82 5672 217 88 25 351 56 329 592 67 992 754 657 555 84 92 8461 1299 147 519 99 5 52 3 97 883 19 17 3 653 774 91 3 417 5 133 74 52 983 798 247 7
3
3
+
613 735 64 14 28 45 51 64 61 463 39 9811 7437 826 73 98 28 72 12 958 339 89 4585 42 58 6176 67 9 56 184 984 176 98 4436 71 2675 61 47 12 676 912 44 64 66 9 14 1216 22 155 394 21 5649 696 271 4367 158 81 65 44 7837 84 16 2 8379 19 62 542 26 6 62 46 7872 96 625 316 39 36 1921 735 54 2831 489 644 49 48 925 62 413 963 745 6557 55 86 896 37 433 955 414 324 211 7893 13 935 74 2323 24 39 79 751 276 738 846 434 951 27 155 491 61 2919 578 85 131 16 3838 12 686 93 261 13 541 729 95 9565 619 54 57 66 3 95 411 459 49 55 117 44 86 59 261 33 587 46 3 67 645 3392 947 877 732 17 4585 91 45 998 4 42 639 62 351 74 31 99 76 2812 23 96 25 73 24 139 768 246 78 464 83 77 183 55 654 224 26 854 257 27 7 1639 98 289 21 919 43 8123 81 1 145 16 76 77 27 62 329 195 11 738 62 98 523 13 125 999 93 13 57 21 95 55 394 385 2745 2 55 96 45 485 44 46 825 46 3 462 868 16 438 15 6 7 32 983 76 586 1 71 26 15 646 42 672 628 74 151 41 489 828 6921 452 627 72 69 6791 52 5815 72 384 41 7 5 868 464 684 39 144 734 65 52 359 512 794 71 611 4 39 911 83 1 3 747 282 522 9 557 59 373 66 87 227 5 22 841 11 59 4166 84 79 982 238 486 227 998 5 466 544 8667 37 93 76 7 65 26 5 734 46 33 79 4184 266 481 895 52 76 48 197 941 81 245 26 544 29 69 36 8 434 4966 653 35 375 658 46 25 921 99 8178 427 7373 199 627 5 21 7829 66 72 682 782 12 38 83 52 38 731 444 662 98 624 68 19 28 95 688 71 931 319 3979 422 45 44 512 215 86 582 34 674 4 9195 57 655 696 3417 3676 135 163 7 551 53 74 74 96 26 36 32 61 32 78 85 36 7344 89 8 377 9741 71 732 16 849 17 66 17 2 459 77 898 56 428 324 8 59 491 97 74 8372 476 632 169 657 117 793 59 721 54 93 983 3325 76 6 48 985 45 88 381 67 657 74 39 66 32 5 55 59 35 2781 2 36 59 24 31 85 42 355 3163 615 441 31 44 31 14 553 49 36 6382 459 86 46 97 341 67 386 64 97 3 47 766 493 42 337 72 6554 32 653 141 38 579 45 142 16 6 1652 69 26 79 3 967 681 938 886 15 51 444 932 43 4478 7 89 55 37 61 68 15 89 75 39 38 15 41 12 53 7674 27 289 327 16 578 783 37 84 55 3258 424 11 14 51 6 5 851 77 27 56 76 18 89 3 1817 9233 82 91 38 63 362 686 5529 3 262 641 6522 55 72 58 4 766 8212 21 6665 43 959 695 369 85 529 68 639 9 51 54 8 51 61 86 76 865 751 347 5 32 8 534 6 96 69 22 2936 287 85 72 24 91 17 98 974 47 632 576 896 7961 474 68 9871 566 53 9313 23 486 552 38 98 6 59 466 14 299 659 55 981 98 1 72 883 321 34 79 835 323 4474 734 8 94 56 173 727 2 5 768 22 3 318 584 23 8 565 929 745 73 955 242 55 22 67 78 6 34 843 51 2598 748 13 89 79 781 47 529 4 69 18 48 36 2 91 2211 22 18 729 4 96 3 827 9683 332 3 59 627 42 5345 198 894 31 93 8918 49 439 534 85 96 342 74 41 238 893 554 82 36 89 3789 38 41 21 2517 4884 61 18 23 356 121 614 136 5461 417 54 53 39 442 71 83 79 71 159 394 485 58 57 678 223 41 56 91 22 88 39 653 2265 8 36 48 37 622 37 5782 535 9776 494 763 414 52 9369 7435 77 899 58 721 262 5 13 37 51 82 89 54 5 87 34 94 837 2 64 1 94 159 662 421 7 4463 41 1 13 6 459 5565 932 38 72 756 6762 2165 64 555 21 882 18 9689 22 329 59 975 79 6554 558 87 8431 729 729 57 5 7311 92 483 28 96 7457 8843 6158 3148 37 34 854 876 75 777 155 724 5716 329 695 99 14 639 984 69 36 1 451 16 73 29 269 199 93 63 33 5 841 858 13 679 9 63 775 355 8 86 253 948 285 544 961 814 99 52 113 387 995 725 223 42 52 55 831 56 58 287 83 59 396 7345 82 12 511 85 71 37 49 76 7764 292 111 62 72 12 194 57 733 87 1 63 75 815 77 7 3141 31 6241 9791 29 448 21 84 627 353 51 28 362 74 576 614 38 312 451 99 478 864 21 962 5678 4956 136 29 6 67 16 3 967 68 95 58 731 867 41 48 891 3 615 17 664 963 329 525 85
4
4
+
668 8161 592 6 82 25 66 7 68 865 155 515 1189 753 9 3 41 77 8 354 233 71 6593 62 92 9525 72 47 44 137 78 57 52 1946 56 9911 27 55 8 596 216 5 35 34 8 75 791 17 6 199 35 3492 834 989 6423 3653 75 93 5952 5911 88 51 1 956 85 76 755 41 6 45 15 62 38 849 39 67 77 272 136 72 1 938 98 8 1 397 93 393 88 333 5912 1 75 718 86 985 821 119 121 396 1166 87 95 4 8917 73 23 19 335 866 624 931 2 74 6 39 538 33 22 555 22 86 34 12 7 479 25 257 76 132 347 38 5876 14 76 5 18 3 75 99 918 455 52 993 48 2 5 95 94 626 7 1 98 711 9993 657 13 53 67 1893 698 22 8137 1 99 843 58 726 57 41 65 8 3597 737 47 55 35 2 234 676 767 12 295 44 38 221 13 29 18 743 65 829 58 8 2467 87 14 26 577 71 4934 34 7 161 69 6 992 84 31 619 49 647 9515 54 21 686 37 432 128 9 87 46 57 94 8 6 486 136 5 53 37 2 1 44 67 51 7 2 417 621 39 835 77 5 9 16 386 49 165 5 84 61 38 757 43 8333 571 74 978 6 185 816 7165 812 115 75 4 675 7 2185 8 92 44 34 6 533 26 3 2 278 3 66 7 132 9744 75 4 859 3 7 832 3 7 8 451 639 16 7 137 9 543 18 144 591 2 715 95 8 26 2836 64 45 547 797 745 547 341 8 836 588 3481 9 9 41 81 9 26 9 644 13 22 3 73 75 87 75 92 43 77 679 18 75 939 41 23 82 34 52 9 686 9269 2 72 268 918 72 39 5 49 7112 229 496 148 991 8 3 5265 97 4 128 4491 83 91 47 75 81 29 255 256 45 913 72 17 59 12 482 2 57 226 113 294 59 2 67 59 53 645 45 814 8 8418 79 815 393 9242 124 35 595 58 12 15 5 51 6 37 1 59 41 31 95 98 22 8326 83 8 31 4918 678 234 9 634 88 94 71 9 612 37 882 99 392 481 43 47 117 98 84 8854 719 516 91 338 648 57 52 783 32 13 245 1925 75 282 71 4 19 22 15 23 3 74 39 5 136 7 3 32 63 6968 2 49 259 24 84 37 9 977 9357 897 93 98 53 44 31 62 23 57 5888 492 81 15 95 289 81 53 85 49 4 1 222 445 48 767 4 911 43 995 392 26 731 83 928 33 5 7128 52 18 2 3 185 362 186 311 88 97 557 37 91 1288 1 59 1 16 653 74 2 1 61 7 11 48 38 15 7 347 78 95 363 3 698 246 25 82 72 4895 44 89 4 99 8 4 296 43 91 74 6 323 28 2 9183 7698 13 7 18 3 3 327 1325 2 596 85 15 48 1 32 33 55 5282 58 7121 12 698 91 236 328 9 78 179 5 725 6 9 56 92 53 8 367 555 398 9 26 3 778 5 72 98 12 9543 997 625 1 3 63 1 9 49 747 863 853 586 4526 985 48 27 767 38 668 57 269 495 7 84 4 1 966 49 4912 9646 92 216 92 5 5 993 411 22 74 729 948 1429 268 2 57 84 424 541 7 2 38 3 8 993 63 4 8 376 85 751 64 134 47 75 66 3 11 5 83 497 96 7237 716 28 39 7 771 29 268 3 21 88 22 48 9 56 1791 92 36 525 8 11 1 54 7685 336 8 88 826 18 4796 118 14 7 68 6878 49 365 959 91 49 649 97 17 677 4 262 19 95 76 1321 54 65 6 1194 8929 56 6118 82 6 57 635 9973 1391 583 8 79 97 274 22 13 8 62 724 958 399 65 96 292 595 2 41 75 13 82 79 48 6 5 75 85 73 247 64 4319 6796 6551 932 343 359 95 6472 7866 23 783 89 769 775 8 11 34 15 56 4 15 6 59 3 4 96 3 62 3 3 873 188 836 6 365 78 5 25 3 25 9925 1 8 9 7 1287 8321 14 593 17 194 16 9222 79 144 34 376 2 5293 4136 282 334 989 582 55 6 2957 67 7852 36 9 5157 8563 6135 411 1 2 163 922 174 584 893 917 7697 3 699 76 99 695 815 96 85 2 587 83 36 18 992 9 16 28 65 8 773 143 78 132 9 57 77 58 2 14 193 68 529 453 856 8 35 6 88 377 45 387 3146 46 51 66 913 67 6 47 17 89 929 4869 6 7 543 4 91 35 8 29 9 214 946 87 33 18 11 68 5 65 1 8 11 955 7 8 447 53 2352 2279 93 889 69 32 7 65 97 77 265 7 1 451 6 997 832 9 643 921 8 79 5788 3897 176 24 24 49 64 7 692 86 29 74 587 955 57 13 124 85 25 88 126 154 699 991 64
5
5
+
+ + + + + + * * + * * + + + + + * * * + + + + * + + * * + * * + * + + + + * * + * + * + * * + * * * * + * * + + * * + + + * * + * * * + * * * + * + + * + + + * + * + * + * * + + * + + + + * * * + * * + * * + + * + + + + * + + + + + * * + + + * * + * * + + * + + + + + * * * * * + * * + * * + * * + + * + * * + * + + * + * + + + + + * + * + + + + * + * * * + + * + * * + * + * + * * + * * + + + + * + + + * * * + + + + + + * + * + * + + + + * + * * + * + + * + * * + + * * * + + * + + * + + + * + * * + * + * * + + * + * + * + + + + * + * + * + * * * + + + + * + + * + + + + + * * + * + * * * * * * + * * + + * * + + + + * * * * * * * * * + + * * * * * * + * + * * + * + + + * + + + + * * * * * + * + + + * * + + + * + + + + * * * + + * + + + * + * + + * * + + * * * * * + + + * + + + * + * * + * + * + * + * + + + * * + * * + * * * * * * + * * + * + * + + + * + * + + + * + * + * * * + * * * + + * * * + + + + * + + + + + * + + * * * * + + * + + + + + + + * * * * + * + + + * * * * * + * * + * * * * + * + + + * * * + * * * + * + + * + + + * * + + * * * * + + + * * + * + + * + + * * * + * + + * * * * + + * * + + + + * + + + + + + + * * * + * * * * + + + + + * * + * + + * * * + + * * + + + * + * + * * + + + + * + * + + + + * * + * + * * + + * * + + * + * * + * + + + * * + + * * + * * + + + * * * * * + + + + * + * * + + * * * * + + * + * * + * * * * * * + + * * * + * * * * + + + * * + + * + + + + + * * + * * * + * + * + + + * + * + + + + + + + * + + * * + + + + * + + * + * * * + * + * + * * * + + * + + * + * + + * + * * * * + + + + + * + + * * + + + * * * * + * + + + + * + + + + + + * + + + + + * * * * + * + * + * * + + * * * * * * * * * + * * + * + + * + + * + + * * * + * + + * * * + + + + + * * + + + * + + * + + + + * * * * + + + + + * + * * + + + * + + + * + + * * * * * * * + + + * + + * * * + + + + + * * * * * * + + * + + * * + * * + + * * * * * * * + + * * * * * * * * + + * * * * + + * + + + * * * + + + + + * + * * + + * + * * + + + * + + + + + + * + * * + * + * + * * + + * * +
+71
src/day6.rs
···
1
1
+
use itertools::Itertools;
2
2
+
3
3
+
pub fn day6_part1(input: &str) -> String {
4
4
+
let problems = parse(input);
5
5
+
let answers = problems.iter().map(|(operands, operator)| evaluate(operands, *operator)).collect_vec();
6
6
+
dbg!(answers).iter().sum::<u64>().to_string()
7
7
+
}
8
8
+
9
9
+
pub fn day6_part2(input: &str) -> String {
10
10
+
todo!()
11
11
+
}
12
12
+
13
13
+
fn evaluate(operands: &[u64], operator: Operator) -> u64 {
14
14
+
match operator {
15
15
+
Operator::Plus => operands.iter().sum(),
16
16
+
Operator::Times => operands.iter().product(),
17
17
+
}
18
18
+
}
19
19
+
20
20
+
#[derive(Clone, Copy, Debug)]
21
21
+
enum Operator {
22
22
+
Plus,
23
23
+
Times,
24
24
+
}
25
25
+
26
26
+
fn parse(input: &str) -> Vec<(Vec<u64>, Operator)> {
27
27
+
let rows: Vec<Vec<char>> = input.lines().map(|line| line.chars().collect()).collect();
28
28
+
let mut problems = vec![];
29
29
+
let mut beginning_of_last_problem = 0;
30
30
+
for col in 0..=rows[0].len() {
31
31
+
let is_river = col == rows[0].len() || (0..rows.len()).all(|row| rows[row][col] == ' ');
32
32
+
if !is_river {
33
33
+
continue;
34
34
+
}
35
35
+
problems.push(
36
36
+
(0..rows.len())
37
37
+
.map(|row| &rows[row][beginning_of_last_problem..col])
38
38
+
.collect_vec(),
39
39
+
);
40
40
+
beginning_of_last_problem = col + 1;
41
41
+
}
42
42
+
43
43
+
let mut parsed_problems = vec![];
44
44
+
45
45
+
for problem in problems {
46
46
+
let operands = problem[..problem.len() - 1]
47
47
+
.iter()
48
48
+
.map(|chars| {
49
49
+
chars
50
50
+
.iter()
51
51
+
.collect::<String>()
52
52
+
.trim_ascii()
53
53
+
.parse()
54
54
+
.unwrap()
55
55
+
})
56
56
+
.collect_vec();
57
57
+
let operator = problem[problem.len() - 1]
58
58
+
.iter()
59
59
+
.collect::<String>()
60
60
+
.trim_ascii()
61
61
+
.to_owned();
62
62
+
let operator = match operator.as_str() {
63
63
+
"+" => Operator::Plus,
64
64
+
"*" => Operator::Times,
65
65
+
_ => unreachable!("{operator}"),
66
66
+
};
67
67
+
parsed_problems.push((operands, operator));
68
68
+
}
69
69
+
70
70
+
parsed_problems
71
71
+
}
+16
src/lib.rs
···
118
118
pub mod day3;
119
119
pub mod day4;
120
120
pub mod day5;
121
121
+
pub mod day6;
121
122
mod spatial;
122
123
123
124
#[cfg(test)]
124
125
mod tests {
125
126
use super::*;
127
127
+
128
128
+
#[test]
129
129
+
fn day6_part1_test() {
130
130
+
let test_result = day6::day6_part1(include_str!("../input/day6.test.txt"));
131
131
+
assert_eq!(test_result, "4277556");
132
132
+
let result = day6::day6_part1(include_str!("../input/day6.txt"));
133
133
+
assert_eq!(result, "4951502530386");
134
134
+
}
135
135
+
// #[test]
136
136
+
// fn day6_part2_test() {
137
137
+
// let test_result = day6::day6_part2(include_str!("../input/day6.test.txt"));
138
138
+
// assert_eq!(test_result, "14");
139
139
+
// // let result = day6::day6_part2(include_str!("../input/day6.txt"));
140
140
+
// // assert_eq!(result, "348115621205535");
141
141
+
// }
126
142
127
143
#[test]
128
144
fn day5_part1_test() {