aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKostas <yannakakis.kon@gmail.com>2021-08-29 17:30:45 +0200
committerKostas <yannakakis.kon@gmail.com>2021-08-29 17:30:45 +0200
commitc198d6d7620664f2be88c54e1f5b0cf7d0f81002 (patch)
tree32ff63b68bce1d26722645d38507a6b415beba28
parent61bd67ccd839173326f01cd3e5fafcf1fb748022 (diff)
downloadperlweeklychallenge-club-c198d6d7620664f2be88c54e1f5b0cf7d0f81002.tar.gz
perlweeklychallenge-club-c198d6d7620664f2be88c54e1f5b0cf7d0f81002.tar.bz2
perlweeklychallenge-club-c198d6d7620664f2be88c54e1f5b0cf7d0f81002.zip
add solution for challenge 2
-rw-r--r--challenge-127/kostas-giannakakis/perl/ch-2.pl46
1 files changed, 45 insertions, 1 deletions
diff --git a/challenge-127/kostas-giannakakis/perl/ch-2.pl b/challenge-127/kostas-giannakakis/perl/ch-2.pl
index be72b01653..ac74bb7fb6 100644
--- a/challenge-127/kostas-giannakakis/perl/ch-2.pl
+++ b/challenge-127/kostas-giannakakis/perl/ch-2.pl
@@ -1,5 +1,49 @@
use strict;
use warnings;
+my @Intervals = ( [3,4], [5,7], [6,9], [10, 12], [13,15] );
-my @Intervals = [ (1,4), (3,5), (6,8), (12, 13), (3,20) ]; \ No newline at end of file
+my @sets;
+my $count = 0;
+
+my @sort_arr;
+my @conflicts;
+
+foreach (@Intervals) {
+ $count++;
+ push @sets, $_;
+ conflict($count, $_, @sets);
+}
+
+result(@conflicts);
+
+sub conflict {
+ my $count = shift;
+ my $set = shift;
+ my @arr = @_;
+
+ my @sort_tmp;
+
+ if (scalar(@arr) == 1) {
+ print "- The $count interval ($set->[0],$set->[1]) do not have any previous intervals to compare with, so skip it.\n";
+ return 0;
+ }
+
+ foreach (@arr) {
+ if ($set->[0] > $_->[0] && $set->[0] < $_->[1]) {
+ print "- The $count interval ($set->[0],$set->[1]) does conflict with some of the previous intervals.\n";
+ push @conflicts, $set;
+ return;
+ }
+ }
+ print "- The $count interval ($set->[0],$set->[1]) do not conflicts with any of the previous intervals so skip it.\n";
+}
+
+sub result {
+ my @conflicts = @_;
+ print "[ ";
+ foreach (@conflicts) {
+ print "(" . $_->[0] . "," . $_->[1] . ") ";
+ }
+ print "]\n";
+} \ No newline at end of file