tweaks
This commit is contained in:
parent
046cb8f538
commit
cbc7a283a3
@ -11,15 +11,14 @@ sub rank_hand (@hand) {
|
||||
my %group;
|
||||
$group{$_}++ for @hand;
|
||||
|
||||
#use DDP; p %group;
|
||||
|
||||
return 7 if 1 == keys %group;
|
||||
|
||||
return 6 if grep { $_ == 4 } values %group;
|
||||
|
||||
return 5 if keys %group == 2 and grep { $_ == 3 } values %group;
|
||||
|
||||
return 4 if grep { $_ == 3 } values %group;
|
||||
if( grep { $_ == 3 } values %group ) {
|
||||
return 5 if keys %group == 2;
|
||||
return 4;
|
||||
}
|
||||
|
||||
return 3 if keys %group == 3;
|
||||
|
||||
@ -37,19 +36,16 @@ sub handify ($str) {
|
||||
A => 14
|
||||
);
|
||||
|
||||
my @cards =
|
||||
map { chr( ord('a') + $_ - 2 ) } map { $map{$_} // $_ } split '', $str;
|
||||
|
||||
return \@cards;
|
||||
return [
|
||||
map { chr( ord('a') + $_ - 2 ) } map { $map{$_} // $_ } split '', $str
|
||||
];
|
||||
}
|
||||
|
||||
sub parse_input ($input) {
|
||||
my @lines = split "\n", $input;
|
||||
my @hand_score = pairmap {
|
||||
return pairmap {
|
||||
[ handify($a), $b ]
|
||||
}
|
||||
map { split " " } @lines;
|
||||
return @hand_score;
|
||||
map { split " " } split "\n", $input;
|
||||
}
|
||||
|
||||
sub score (@hand) {
|
||||
@ -57,11 +53,8 @@ sub score (@hand) {
|
||||
}
|
||||
|
||||
sub solution_1 ($input) {
|
||||
my @hand_score = sort_by { score( $_->[0]->@* ) } parse_input($input);
|
||||
my $rank = 0;
|
||||
|
||||
# use DDP; p @hand_score;
|
||||
return sum map { ++$rank * $_->[1] } @hand_score;
|
||||
return sum map { ++$rank * $_->[1] } sort_by { score( $_->[0]->@* ) } parse_input($input);
|
||||
}
|
||||
|
||||
1;
|
||||
|
Loading…
Reference in New Issue
Block a user