Advent of Code 2023 - Day 7
Sample
sample = """
32T3K 765
T55J5 684
KK677 28
KTJJT 220
QQQJA 483
"""
"32T3K 765\nT55J5 684\nKK677 28\nKTJJT 220\nQQQJA 483\n"
Input
input = """
JJJJJ 435
29QA4 847
6A9A9 348
TKQKT 260
J3J58 486
6JT4T 908
K898J 553
KKJK6 957
TQJTT 394
33353 431
J3JTT 89
K787Q 296
JA727 236
7T779 914
9J2J7 774
Q866T 36
4QQ34 745
T3366 197
7777Q 825
TTA9T 894
22292 50
Q4KJK 733
69TK9 144
7427J 930
T6372 580
T5TT4 451
9T5TT 282
2Q29Q 778
77K77 822
J777Q 489
27445 542
44JAT 474
678T9 266
J99TT 987
88826 907
Q2748 477
Q7A4K 584
J7J72 480
94797 417
2Q2TQ 972
Q8225 943
Q5666 731
TAA63 485
7AATJ 627
A496A 609
Q7Q72 776
Q593K 702
KK55J 455
5A56K 980
44342 969
353K3 216
44644 759
Q777A 884
KAKTA 634
A4628 75
32Q3Q 342
J6Q6Q 843
8K83K 630
7JJT7 1
T6T22 931
7A329 991
893Q7 471
TA3AT 290
AQJTA 838
K733K 793
76K27 408
6TKJT 701
4J3TK 673
4278A 487
72A24 15
89488 779
86678 428
222TT 248
77872 920
AKAKK 685
76972 72
99J2K 948
KKTKK 576
T7Q6A 671
K5T55 76
66J55 828
Q23A2 183
63333 990
JJ45A 903
84AA8 985
J272J 308
5666K 953
3QT3Q 611
777TT 737
JAA2A 592
2J992 244
J5242 268
6J86K 973
J43KJ 40
8A888 832
5T66A 723
38J55 47
9765J 473
2K45T 415
772J2 788
55772 399
J6256 676
69776 684
9KQ99 808
J33J3 452
TJ4T7 314
455J4 550
92K99 29
KT77J 427
3J3A3 965
KKQQK 842
K4KK5 916
QJTT2 614
8QQQA 767
88JTJ 518
T8TTQ 22
KKKK8 303
4JJ4A 898
97T7J 813
28JK6 926
225KK 189
96966 132
T34T4 520
5QQ5Q 418
4J444 482
56667 532
44JQ4 306
JTAA5 762
88836 846
55655 148
57K5K 217
3AQQ3 784
2TTAT 91
88887 327
83T4J 720
22226 391
26266 163
QQQKQ 386
24JAT 495
3TJ3T 919
T96TT 849
K66K6 612
2J272 110
68688 792
AQAAT 116
5AKA7 754
JA96A 806
T74JJ 498
6K629 208
7J62Q 209
44JT3 768
44884 624
55575 119
5896A 463
J262K 66
7666Q 739
5J52J 9
98999 915
5TT7T 235
2K546 963
J6J66 365
7J22K 84
4J4T4 821
222KT 589
K33K3 372
22777 12
66TAJ 258
56J42 962
28888 19
423T5 354
K6KKK 818
5K489 320
37958 62
888J8 629
665T7 238
8888T 615
JTQ72 426
3333K 142
Q6KQQ 38
6QKT5 73
89558 467
K3AKK 703
TTKT8 356
6J668 597
5555J 732
57TA2 139
34433 439
33537 993
JJAAK 337
A2J24 274
688JT 698
79AKQ 853
34KK4 791
492AK 199
29323 309
KT8KK 42
88488 777
6K678 870
35698 515
22683 94
T88TJ 594
TJTJK 96
99699 459
44QJ3 711
92699 799
KJK44 631
99299 862
6AATA 649
K8888 27
4T222 493
AA4AA 362
QKQ4K 856
57JA5 146
K75JK 669
88785 575
4TQ2T 864
JTTTJ 628
3JTJ3 722
A26J2 531
6J65Q 367
74J77 775
3888K 728
T97T9 527
8AA5A 188
99555 346
J5TJ5 725
TTJ63 207
7773T 693
3KKK2 979
97QT2 453
4T499 118
A662A 548
29TTJ 665
4A664 952
79354 267
QQ6Q6 241
KA934 69
J88KK 623
T66T7 332
JT7A6 156
A555A 335
65669 492
5AAAA 265
22252 566
K22Q2 743
86K26 900
5J726 697
9K99K 803
39222 387
82749 569
TT77T 33
QJ6QQ 95
7487Q 997
KAK87 124
Q2Q22 404
82822 591
TJ9A2 177
44KK6 14
98T4Q 967
TA6A6 46
2T483 710
JK6AA 133
92922 128
92JAQ 654
5TKA7 436
97KA6 106
4TA52 448
98988 140
22272 823
KTKK5 4
599A4 798
6J578 411
J7777 865
3KKK3 845
J8JJ8 240
A2AQ6 272
5TT55 77
388A8 873
T9K52 816
88822 130
32888 30
J9J7Q 219
KTKTK 836
6AJ26 839
KAA99 67
966Q9 41
95596 276
79467 512
233A2 321
677A7 195
392AK 558
24T7K 758
QK55K 230
T6T66 252
JQQJQ 171
QTQ95 170
JKJ4K 150
52A76 851
535T5 1000
6QQQ8 780
K7KKK 600
55754 396
AA88A 646
85J8A 114
6666J 595
J6Q3Q 514
4K774 992
67464 297
K4777 921
8Q38J 464
T3933 456
573A9 946
23949 995
5K9KJ 852
5K57A 149
J2279 854
AKAK7 164
492TQ 105
32JQT 443
J737J 412
5A552 787
4KKKK 369
23333 632
TJT22 664
6T766 423
32J54 289
5TQK3 984
9K955 528
34Q6J 607
JKKAA 159
22627 807
98J9Q 513
66866 425
33776 878
J4J4K 11
5TKJ5 249
65565 419
7K7K6 121
97QJ2 347
TTJ48 228
4747T 26
65TTJ 410
7KQQ2 913
K9977 789
JKK93 511
A32JJ 55
AK8Q4 795
KQKK3 162
Q652K 34
T2523 58
TKQTT 588
99Q63 196
4A427 24
55A5T 315
AA43A 831
69692 294
TKTTT 688
TQJT8 287
TAT72 49
777T7 445
99839 961
39545 949
TA99A 712
KKQKK 934
Q7QJQ 281
333KJ 334
2KKJA 255
85T88 866
99J9J 805
J44J4 247
33AK3 97
33J38 165
2J2K3 168
A69J9 180
9Q726 695
49T32 304
86K66 947
3Q9K7 277
J6662 200
A5628 438
Q727A 278
27688 295
J5573 888
43T68 640
65656 496
QJ38J 68
83488 536
K2K2J 918
JK26K 658
Q44J2 719
73677 261
KT3K8 585
9J969 226
Q7QQ7 837
Q7797 705
T442A 351
66559 134
8AJ8T 970
3JAAA 892
5A5JA 738
A2639 54
KKT78 284
T7864 6
997J9 51
K8J72 176
K7J84 213
65668 929
KAT63 565
8TQ53 988
3555J 462
K3J5K 279
3J99J 98
2JK24 932
3JK4Q 204
7277K 507
739AA 465
KJ839 187
JT69K 620
866AA 333
36835 582
K2255 971
9T59T 833
7A3K9 886
5K844 734
73642 458
JKKJ8 300
6KK99 186
K2K2K 577
336A2 905
4897Q 769
22A26 137
8Q888 893
J443K 694
72777 883
TQQQQ 951
QQQQ5 57
5T5TJ 184
J7KKQ 358
K7796 637
55J52 817
JJ6Q6 714
42556 521
2772A 896
9K27A 881
4574Q 618
75557 863
A95A5 885
AA8AA 794
88Q85 108
AQQ44 5
7JJA7 619
3J798 92
K6T95 63
JA5Q9 112
JT2T7 756
76677 996
4K24K 826
KJKKK 909
56TQ7 911
5T6J2 479
T46K2 923
658T7 643
3T999 225
4K75A 126
JQ568 23
Q5482 721
JAATT 706
AKJ5T 782
776J3 517
27227 291
42424 283
KAT47 234
TT8TT 766
A7JQA 651
222Q2 804
JK55Q 85
24999 933
Q888Q 757
74778 141
Q855Q 352
9J6QQ 552
K532T 328
AAQQQ 572
6J823 407
Q29K6 889
99644 964
62666 590
5QQ45 638
5J599 912
QJQQT 724
7J62K 494
Q38K5 301
Q4Q85 115
Q9JT6 275
A46A8 319
TT4TT 35
66QT9 81
35242 8
43AQT 405
J8728 686
JTKK4 400
62252 214
94Q93 325
TT4KK 501
9QJKA 305
JQJ9J 508
2497T 786
KKK88 522
23339 682
77Q57 568
947JQ 539
Q9764 74
A3A3A 444
282T2 506
AQ863 86
Q9QQQ 374
K8285 879
6QAQT 368
63K68 976
Q4QQQ 382
6J8KT 924
4JAK5 827
93339 475
6TTTT 502
24Q32 603
T6555 650
Q6TT6 574
3355J 316
T4888 750
TK82A 229
49J7T 764
KA69A 403
TK777 153
79887 497
QQQ9J 421
JT8KK 959
42444 82
TTT72 259
Q5892 783
35Q5Q 111
TK2T3 740
TTTT3 312
85952 392
62393 59
66466 844
TTJ9T 887
9TJ64 147
4A447 182
8Q39Q 790
5969Q 535
TA28A 117
79285 174
2376K 641
7Q25K 809
QTA68 939
KKAKK 376
532A8 598
T4JJK 329
QQQ2J 323
46A4J 93
66333 434
A43A9 349
4Q4QQ 416
5K326 578
T8T28 880
4KQ63 273
J555J 330
7748J 977
53595 385
3JKA3 271
JJ222 83
4836K 285
KQQ4Q 581
T63JK 763
T35T3 221
4KK33 753
333TA 557
QQJQQ 730
J39T7 986
33235 80
Q828Q 231
5TTQ5 983
35J7T 668
AJ8JA 16
JJ4QJ 954
6Q62Q 437
A3J26 678
79654 938
6J624 815
K9KK7 449
TT92T 830
926JA 203
556Q5 707
5565K 835
3K4QK 692
8JKJ5 727
Q7QAQ 161
K7KK4 2
Q2253 810
45K45 37
Q975T 123
J6J7J 18
QQQ24 709
69868 322
96AQ4 917
TT4AT 679
T543J 602
JATTT 310
5Q2K9 251
56J99 383
56999 796
44447 192
Q2QK2 748
Q362Q 958
J8788 88
555Q5 937
675J6 476
9494J 901
8A47K 998
47869 529
7J95J 935
5438J 331
222J2 254
635J9 157
QAJ39 989
22297 422
K8488 160
AJAA4 593
6KK9J 621
66J88 895
K9J99 384
37Q37 169
3333Q 239
4K956 546
55455 735
2JAKA 656
878K7 381
KK9KK 457
K6QT7 904
67J7K 897
39993 544
T8TT5 736
T552A 103
44555 191
K8KQ5 484
4TT4T 420
555J4 872
924T6 713
6J7T7 608
26TQ9 760
95999 390
738JQ 135
JJTTJ 717
54444 504
KJJKK 999
4Q5TQ 874
5558J 470
J7898 729
7TKK7 336
JK8A8 373
JJTQ5 344
T936A 256
AAAJ5 606
T7776 526
JA467 978
J2Q82 755
8A878 955
A8AQA 670
JKK6Q 253
A88A8 945
7A8K8 224
77572 350
Q2475 324
6444K 409
AAK22 819
3A68T 461
9T9T9 100
559KJ 71
93J99 683
4444Q 560
82222 61
39Q42 3
T2TTQ 547
KAAAA 525
A2563 446
T7JT7 744
TK8A9 155
66667 811
9J599 483
TTKKA 193
499J9 556
K7JT4 79
J9999 233
8Q88A 771
J6TJ8 389
48884 940
9J398 201
TKTKT 343
KKKJ4 540
AA3AA 696
58KKK 269
KKJ9Q 432
JJ888 488
K9999 661
QQQ99 361
29729 353
925JK 243
QT642 704
47777 770
994K8 245
74AAK 960
83K33 505
TTT52 773
A52A2 636
55992 586
9A88A 691
52725 860
KTJ27 107
7K7QK 605
T8332 340
JJ897 899
3AA6A 359
6J63K 677
88AQQ 524
KJQ88 625
5A6A4 250
599AA 172
KK3K5 194
2JK7J 393
7788J 433
2332J 113
AJ79K 218
TKKKQ 802
TT878 371
T44T9 503
3JA4K 902
JAQT7 708
95777 781
Q82J4 966
58484 715
557A7 834
56568 397
75A55 17
68TTJ 562
994T5 481
KAKA8 380
TTTTJ 52
J3663 812
J346J 699
4484J 292
K4KT7 355
4273K 689
69889 741
66644 642
4KT49 151
T287J 181
85955 549
7J643 857
7384T 820
37877 302
27438 509
4J222 299
69K73 48
9478K 179
777JJ 906
55A3A 868
Q7Q77 232
82384 469
747J4 942
8927A 516
A86K2 891
J66J5 401
A624Q 414
42JT5 31
9K959 928
6KT88 360
A8796 101
AQAQA 626
38539 491
T5393 413
2TK2K 975
5K555 44
999Q9 604
QA8J4 956
3Q958 537
Q7T82 925
8J434 138
A992A 613
8899J 270
285J7 246
5TT5K 326
JQ373 286
5J25T 652
QKQQK 158
77T96 32
AA978 64
4ATTJ 478
T558Q 215
Q2685 500
K7QAA 20
8TTA3 563
3T9TT 441
4AKAK 633
34434 538
AAA7A 747
397K2 370
Q8878 610
QK3KQ 56
4T448 175
888TT 875
3QA85 554
T2KTT 660
Q6QQQ 824
9QA9T 341
9QQ54 364
89989 858
AJAAA 855
77977 395
55T59 599
AQQ77 202
74TJ8 466
63J93 87
K3665 237
222TJ 375
594JT 7
9999T 519
J339J 377
TJ7A7 551
832Q7 388
33J33 968
7777A 28
KAT4A 543
6J427 635
AAATT 655
75AJ4 152
AAJJA 622
A8A6Q 122
5984T 657
JA338 125
J3J6T 129
246QJ 752
Q2A65 555
A2A95 936
9J882 143
8A8T6 227
958K8 797
58T43 653
58558 25
9JTKQ 718
42622 680
7837J 167
44844 402
62K62 675
KKK72 746
9A33A 876
6T666 293
Q333Q 571
333J6 178
K4577 772
9T9KK 690
J7997 601
JTTKK 206
5J677 644
77Q73 338
J3377 877
88777 131
2J2J5 801
62622 534
24944 742
6TTAK 21
A5Q98 749
8A8T8 648
T2222 366
T4335 190
46365 761
29K92 205
444TT 185
A4A4A 583
3229T 882
6QJ93 859
22232 223
72666 499
Q8QQJ 65
87667 210
98K7T 211
7J459 944
23537 663
AT6Q9 726
KA263 666
5QK67 567
54548 222
K7AA7 681
89AA9 468
JA774 687
QTT4Q 564
22AKK 561
JQ3KQ 981
T3T6T 78
3666K 430
JJJJ8 154
5T3TT 639
KK4QK 280
6T9A9 890
K5J4Q 941
64464 800
J47K3 867
AA7A4 667
JK68A 166
99779 379
9K848 212
AJ433 378
5TQJ4 447
53252 785
3T333 318
777K9 662
9J9KK 765
2J288 313
889J8 298
77755 848
J4442 406
4Q6J8 454
79J82 60
4AATJ 173
KKJK2 53
AAQ4Q 39
7468K 460
6A654 99
J3888 345
T9TT9 109
2243T 13
KKKAJ 339
Q99JQ 950
66689 861
K9J8A 104
AQ99Q 263
T66J6 127
3QA44 850
QAAA5 523
9T3TJ 994
A99AA 145
6TT6T 242
36444 90
6QQTT 573
57J75 596
3725J 579
J333Q 814
22AA4 533
55QQ5 647
228JK 424
A3333 442
29295 45
83236 472
Q74Q4 490
TTATT 317
667J7 871
AA4QA 288
QQ3Q6 429
77577 910
K9997 220
6A738 70
TK85T 198
T733T 264
T23TT 357
4K22K 541
7TAA8 716
39999 363
Q6666 136
66663 674
QQJ37 120
22K53 829
2Q93T 659
23KKQ 262
75785 307
3TK47 617
A8285 840
A4238 982
4AA44 645
972AA 751
T465K 927
J33KJ 587
JT9T7 700
6JK49 922
4A237 841
75Q2J 974
6J8AJ 545
9KQKK 311
K4AJT 450
Q7JQ7 257
4QJ88 102
9JTQJ 570
KQJ25 616
78J85 440
65482 559
5Q538 10
5JJ62 869
777J6 510
28T4Q 398
AJ53A 672
53543 530
77373 43
"""
"JJJJJ 435\n29QA4 847\n6A9A9 348\nTKQKT 260\nJ3J58 486\n6JT4T 908\nK898J 553\nKKJK6 957\nTQJTT 394\n33353 431\nJ3JTT 89\nK787Q 296\nJA727 236\n7T779 914\n9J2J7 774\nQ866T 36\n4QQ34 745\nT3366 197\n7777Q 825\nTTA9T 894\n22292 50\nQ4KJK 733\n69TK9 144\n7427J 930\nT6372 580\nT5TT4 451\n9T5TT 282\n2Q29Q 778\n77K77 822\nJ777Q 489\n27445 542\n44JAT 474\n678T9 266\nJ99TT 987\n88826 907\nQ2748 477\nQ7A4K 584\nJ7J72 480\n94797 417\n2Q2TQ 972\nQ8225 943\nQ5666 731\nTAA63 485\n7AATJ 627\nA496A 609\nQ7Q72 776\nQ593K 702\nKK55J 455\n5A56K 980\n44342 969\n353K3 216\n44644 759\nQ777A 884\nKAKTA 634\nA4628 75\n32Q3Q 342\nJ6Q6Q 843\n8K83K 630\n7JJT7 1\nT6T22 931\n7A329 991\n893Q7 471\nTA3AT 290\nAQJTA 838\nK733K 793\n76K27 408\n6TKJT 701\n4J3TK 673\n4278A 487\n72A24 15\n89488 779\n86678 428\n222TT 248\n77872 920\nAKAKK 685\n76972 72\n99J2K 948\nKKTKK 576\nT7Q6A 671\nK5T55 76\n66J55 828\nQ23A2 183\n63333 990\nJJ45A 903\n84AA8 985\nJ272J 308\n5666K 953\n3QT3Q 611\n777TT 737\nJAA2A 592\n2J992 244\nJ5242 268\n6J86K 973\nJ43KJ 40\n8A888 832\n5T66A 723\n38J55 47\n9765J 473\n2K45T 415\n772J2 788\n55772 399\nJ6256 676\n69776 684\n9KQ99 808\nJ33J3 452\nTJ4T7 314\n455J4 550\n92K99 29\nKT77J 427\n3J3A3 965\nKKQQK 842\nK4KK5 916\nQJTT2 614\n8QQQA 767\n88JTJ 518\nT8TTQ 22\nKKKK8 303\n4JJ4A 898\n97T7J 813\n28JK6 926\n225KK 189\n96966 132\nT34T4 520\n5QQ5Q 418\n4J444 482\n56667 532\n44JQ4 306\nJTAA5 762\n88836 846\n55655 148\n57K5K 217\n3AQQ3 784\n2TTAT 91\n88887 327\n83T4J 720\n22226 391\n26266 163\nQQQKQ 386\n24JAT 495\n3TJ3T 919\nT96TT 849\nK66K6 612\n2J272 110\n68688 792\nAQAAT 116\n5AKA7 754\nJA96A 806\nT74JJ 498\n6K629 208\n7J62Q 209\n44JT3 768\n44884 624\n55575 119\n5896A 463\nJ262K 66\n7666Q 739\n5J52J 9\n98999 915\n5TT7T 235\n2K546 963\nJ6J66 365\n7J22K 84\n4J4T4 821\n222KT 589\nK33K3 372\n22777 12\n66TAJ 258\n56J42 962\n28888 19\n423T5 354\nK6KKK 818\n5K489 320\n37958 62\n888J8 629\n665T7 238\n8888T 615\nJTQ72 426\n3333K 142\nQ6KQQ 38\n6QKT5 73\n89558 467\nK3AKK 703\nTTKT8 356\n6J668 597\n5555J 732\n57TA2 139\n34433 439\n33537 993\nJJAAK 337\nA2J24 274\n688JT 698\n79AKQ 853\n34KK4 791\n492AK 199\n29323 309\nKT8KK 42\n88488 777\n6K678 870\n35698 515\n22683 94\nT88TJ 594\nTJTJK 96\n99699 459\n44QJ3 711\n92699 799\nKJK44 631\n99299 862\n6AATA 649\nK8888 27\n4T222 493\nAA4AA 362\nQKQ4K 856\n57JA5 146\nK75JK 669\n88785 575\n4TQ2T 864\nJTTTJ 628\n3JTJ3 722\nA26J2 531\n6J65Q 367\n74J77 775\n3888K 728\nT97T9 527\n8AA5A 188\n99555 346\nJ5TJ5 725\nTTJ63 207\n7773T 693\n3KKK2 979\n97QT2 453\n4T499 118\nA662A 548\n29TTJ 665\n4A664 952\n79354 267\nQQ6Q6 241\nKA934 69\nJ88KK 623\nT66T7 332\nJT7A6 156\nA555A 335\n65669 492\n5AAAA 265\n22252 566\nK22Q2 743\n86K26 900\n5J726 697\n9K99K 803\n39222 387\n82749 569\nTT77T 33\nQJ6QQ 95\n7487Q 997\nKAK87 124\nQ2Q22 404\n82822 591\nTJ9A2 177\n44KK6 14\n98T4Q 967\nTA6A6 46\n2T483 710\nJK6AA 133\n92922 128\n92JAQ 654\n5TKA7 436\n97KA6 106\n4TA52 448\n98988 140\n22272 823\nKTKK5 4\n599A4 798\n6J578 411\nJ7777 865\n3KKK3 845\nJ8JJ8 240\nA2AQ6 272\n5TT55 77\n388A8 873\nT9K52 816\n88822 130\n32888 30\nJ9J7Q 219\nKTKTK 836\n6AJ26 839\nKAA99 67\n966Q9 41\n95596 276\n79467 512\n233A2 321\n677A7 195\n392AK 558\n24T7K 758\nQK55K 230\nT6T66 252\nJQQJQ 171\nQTQ95 170\nJKJ4K 150\n52A76 851\n535T5 1000\n6QQQ8 780\nK7KKK 600\n55754 396\nAA88A 646\n85J8A 114\n6666J 595\nJ6Q3Q 514\n4K774 992\n67464 297\nK4777 921\n8Q38J 464\nT3933 456\n573A9 946\n23949 995\n5K9KJ 852\n5K57A 149\nJ2279 854\nAKAK7 164\n492TQ 105\n32JQT 443\nJ737J 412\n5A552 787\n4KKKK 369\n23333 632\nTJT22 664\n6T766 423\n32J54 289\n5TQK3 984\n9K955 528\n34Q6J 607\nJKKAA 159\n22627 807\n98J9Q 513\n66866 425\n33776 878\nJ4J4K 11\n5TKJ5 249\n65565 419\n7K7K6 121\n97QJ2 347\nTTJ48 228\n4747T 26\n65TTJ 410\n7KQQ2 913\nK9977 789\nJKK93 511\nA32JJ 55\nAK8Q4 795\nKQKK3 162\nQ652K 34\nT2523 58\nTKQTT 588\n99Q63 196\n4A427 24\n55A5T 315\nAA43A 831\n69692 294\nTKTTT 688\nTQJT8 287\nTAT72 49\n777T7 445\n99839 961\n39545 949\nTA99A 712\nKKQKK 934\nQ7QJQ 281\n333KJ 334\n2KKJA 255\n85T88 866\n99J9J 805\nJ44J4 247\n33AK3 97\n33J38 165\n2J2K3 168\nA69J9 180\n9Q726 695\n49T32 304\n86K66 947\n3Q9K7 277\nJ6662 200\nA5628 438\nQ727A 278\n27688 295\nJ5573 888\n43T68 640\n65656 496\nQJ38J 68\n83488 536\nK2K2J 918\nJK26K 658\nQ44J2 719\n73677 261\nKT3K8 585\n9J969 226\nQ7QQ7 837\nQ7797 705\nT442A 351\n66559 134\n8AJ8T 970\n3JAAA 892\n5A5JA 738\nA2639 54\nKKT78 284\nT7864 6\n997J9 51\nK8J72 176\nK7J84 213\n65668 929\nKAT63 565\n8TQ53 988\n3555J 462\nK3J5K 279\n3J99J 98\n2JK24 932\n3JK4Q 204\n7277K 5" <> ...
Part 1
defmodule CamelCards do
defp rank("T"), do: 10
defp rank("J"), do: 11
defp rank("Q"), do: 12
defp rank("K"), do: 13
defp rank("A"), do: 14
defp rank(n), do: String.to_integer(n)
def sortable(hand) do
hand =
hand
|> String.graphemes()
|> Enum.map(&rank/1)
type =
hand
|> Enum.frequencies()
|> Map.values()
|> Enum.sort()
|> Enum.reverse()
{type, hand}
end
end
input
|> String.split("\n", trim: true)
|> Enum.map(fn row ->
[hand, bid] = String.split(row, " ", trim: true)
{CamelCards.sortable(hand), String.to_integer(bid)}
end)
|> Enum.sort()
|> Enum.with_index()
|> Enum.map(fn {{_, bid}, rank} ->
bid * (rank + 1)
end)
|> Enum.sum()
249638405
Part 2
defmodule CamelCards2 do
defp rank("T"), do: 10
defp rank("J"), do: 1
defp rank("Q"), do: 12
defp rank("K"), do: 13
defp rank("A"), do: 14
defp rank(n), do: String.to_integer(n)
def sortable(hand) do
hand =
hand
|> String.graphemes()
|> Enum.map(&rank/1)
joker_count =
hand
|> Enum.filter(fn c -> c == 1 end)
|> Enum.count()
without_jokers = Enum.reject(hand, fn c -> c == 1 end)
frequencies =
without_jokers
|> Enum.frequencies()
|> Map.values()
|> Enum.sort()
|> Enum.reverse()
type =
case frequencies do
[head | tail] -> [head + joker_count | tail]
[] -> [joker_count]
end
{type, hand}
end
end
input
|> String.split("\n", trim: true)
|> Enum.map(fn row ->
[hand, bid] = String.split(row, " ", trim: true)
{CamelCards2.sortable(hand), String.to_integer(bid)}
end)
|> Enum.sort()
|> Enum.with_index()
|> Enum.map(fn {{_, bid}, rank} ->
bid * (rank + 1)
end)
|> Enum.sum()
249776650