aboutsummaryrefslogtreecommitdiff
path: root/challenge-074/javier-luque/raku/ch-1.p6
blob: 41ed69d7413f78268b7f0c7907c396b5bf362350 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# Test: perl6 ch-1.p6
use Test;

sub MAIN() {
	is majority_element((1, 2, 2, 3, 2, 4, 2)), 2, '(1, 2, 2, 3, 2, 4, 2)';
	is majority_element((1, 3, 1, 2, 4, 5)), -1, '(1, 3, 1, 2, 4, 5)';
	done-testing();
}

sub majority_element(@A) {
	my %counts;
	@A.map({ %counts{$_}++ });

	# Majority element
	my $m = %counts.keys
	               .sort({ %counts{$^b} <=> %counts{$^a} })
	               .first;


	return (%counts{$m} > floor(@A.elems/2)) ??
		$m !! -1;
}