From d92a6b2ea34e26f28292695f122ea0ede8d26f85 Mon Sep 17 00:00:00 2001 From: Jörg Sommrey <28217714+jo-37@users.noreply.github.com> Date: Sun, 8 Sep 2024 18:17:33 +0200 Subject: Alternative solution to task 2 --- challenge-284/jo-37/perl/ch-2a.pl | 71 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100755 challenge-284/jo-37/perl/ch-2a.pl diff --git a/challenge-284/jo-37/perl/ch-2a.pl b/challenge-284/jo-37/perl/ch-2a.pl new file mode 100755 index 0000000000..1b20624871 --- /dev/null +++ b/challenge-284/jo-37/perl/ch-2a.pl @@ -0,0 +1,71 @@ +#!/usr/bin/perl -s + +use v5.24; +use Test2::V0; +use Tree::RB::XS ':cmp'; +use experimental 'signatures'; + +our $examples; + +run_tests() if $examples; # does not return + +die <new(compare_fn => CMP_INT, track_recent => 1); + my $part2 = Tree::RB::XS->new(compare_fn => CMP_INT); + $part1->insert($_, 0) for @$list2; + ${\($part1->get($_) // $part2->get_or_add($_))}++ for @$list1; + + [ + map +($_->key) x $_->value, + $part1->iter_newer->next('*'), + $part2->iter->next('*') + ]; +} + +### Examples and tests + +sub run_tests { + + is relative_sort([2, 3, 9, 3, 1, 4, 6, 7, 2, 8, 5], + [2, 1, 4, 3, 5, 6]), [2, 2, 1, 4, 3, 3, 5, 6, 7, 8, 9], + 'example 1'; + is relative_sort([3, 3, 4, 6, 2, 4, 2, 1, 3], + [1, 3, 2]), + [1, 3, 3, 3, 2, 2, 4, 4, 6], + 'example 2'; + is relative_sort([3, 0, 5, 0, 2, 1, 4, 1, 1], + [1, 0, 3, 2]), + [1, 1, 1, 0, 0, 3, 2, 4, 5], + 'example 3'; + done_testing; + + exit; +} -- cgit From f9fe58af520af7af811006634a619b0562640b87 Mon Sep 17 00:00:00 2001 From: Jörg Sommrey <28217714+jo-37@users.noreply.github.com> Date: Sun, 8 Sep 2024 18:18:14 +0200 Subject: New blog for challenge 284 --- challenge-284/jo-37/blog1.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 challenge-284/jo-37/blog1.txt diff --git a/challenge-284/jo-37/blog1.txt b/challenge-284/jo-37/blog1.txt new file mode 100644 index 0000000000..f5149c4012 --- /dev/null +++ b/challenge-284/jo-37/blog1.txt @@ -0,0 +1 @@ +https://github.sommrey.de/the-bears-den/2024/09/08/ch-284.html -- cgit