aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <Mohammad.Anwar@yahoo.com>2022-11-21 00:51:25 +0000
committerGitHub <noreply@github.com>2022-11-21 00:51:25 +0000
commit33d2c9f27e97bf1becf06f10dfac7b83ea4ea786 (patch)
treed6d028944ce3e6bd4405ebf1a84adcd754d68627
parentbcea585591bf03eb57d524cb4e60cb5daecf2d80 (diff)
parent8bb07e846d8a0b6b91cc4410be128a470a617616 (diff)
downloadperlweeklychallenge-club-33d2c9f27e97bf1becf06f10dfac7b83ea4ea786.tar.gz
perlweeklychallenge-club-33d2c9f27e97bf1becf06f10dfac7b83ea4ea786.tar.bz2
perlweeklychallenge-club-33d2c9f27e97bf1becf06f10dfac7b83ea4ea786.zip
Merge pull request #7114 from vamsi-meenavilli/vamsi-challenge-191
Vamsi challenge 191
-rw-r--r--challenge-191/vamsi-meenavilli/perl/ch-1.pl28
-rw-r--r--challenge-191/vamsi-meenavilli/perl/ch-2.pl66
-rwxr-xr-xchallenge-191/vamsi-meenavilli/python/ch-1.py27
-rwxr-xr-xchallenge-191/vamsi-meenavilli/python/ch-2.py41
4 files changed, 162 insertions, 0 deletions
diff --git a/challenge-191/vamsi-meenavilli/perl/ch-1.pl b/challenge-191/vamsi-meenavilli/perl/ch-1.pl
new file mode 100644
index 0000000000..ea9fa55ba1
--- /dev/null
+++ b/challenge-191/vamsi-meenavilli/perl/ch-1.pl
@@ -0,0 +1,28 @@
+#!/usr/bin/perl
+
+=head1
+
+Week 191:
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-191
+
+ Task 1: Twice Largest You are given list of integers, @list. Write a script to find out whether the largest item in
+ the list is at least twice as large as each of the other items.
+
+=cut
+
+use Test2::V0;
+
+is doesTwiceLargestNumberExists(1, 2, 3, 4), -1, 'Example 1';
+is doesTwiceLargestNumberExists(1, 2, 0, 5), 1, 'Example 2';
+is doesTwiceLargestNumberExists(2, 6, 3, 1), -1, 'Example 3';
+is doesTwiceLargestNumberExists(4, 5, 2, 3), -1, 'Example 4';
+
+sub doesTwiceLargestNumberExists {
+ my (@number_array) = @_;
+
+ @number_array = sort @number_array;
+
+ return ($number_array[-1] >= $number_array[-2]**2) ? 1 : -1;
+}
+
+done_testing();
diff --git a/challenge-191/vamsi-meenavilli/perl/ch-2.pl b/challenge-191/vamsi-meenavilli/perl/ch-2.pl
new file mode 100644
index 0000000000..410b868e88
--- /dev/null
+++ b/challenge-191/vamsi-meenavilli/perl/ch-2.pl
@@ -0,0 +1,66 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+=head1
+
+Week 192:
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-191
+
+ Task 2: Cute List You are given an integer, 0 < $n <= 15. Write a script to find the number of orderings of
+ numbers that form a cute list. With an input @list = (1, 2, 3, .. $n) for positive integer $n, an ordering of
+ @list is cute if for every entry, indexed with a base of 1, either
+
+=cut
+
+use Test2::V0;
+use Data::Dumper;
+
+is getCuteListCount(2), 2, 'Example 1';
+
+sub getCuteListCount {
+ my ($number) = @_;
+
+ my $cute_list_count = 0;
+ my @numbers_array = (1..$number);
+
+ for (my $i = 0; $i < $number; $i++) {
+ my @numbers_sub_array = (getArraySlice(\@numbers_array, $i + 1, $number), getArraySlice((\@numbers_array, 0, $i)));
+
+ for (my $j = 0; $j < $number - 1; $j++) {
+ my @possible_cute_list = ($numbers_array[$i], getArraySlice(\@numbers_sub_array, $j, $number - 1), getArraySlice(\@numbers_sub_array, 0, $j));
+ $cute_list_count += 1 if isCuteList(@possible_cute_list);
+ }
+ }
+
+ return $cute_list_count;
+}
+
+sub getArraySlice {
+ my ($array, $start, $end) = @_;
+
+ my $array_size = scalar @{$array};
+ my @sliced_array = ();
+
+ for (my $i = $start; $i < $end; $i++) {
+ if ($i < $array_size) {
+ push @sliced_array, $array->[$i];
+ }
+ else {
+ last;
+ }
+ }
+
+ return @sliced_array;
+}
+sub isCuteList {
+ my @numbers_array = @_;
+
+ for (my $i = 0; $i < scalar(@numbers_array); $i++) {
+ return (0) unless ($numbers_array[$i] % ($i + 1) == 0 or ($i + 1) % $numbers_array[$i] == 0);
+ }
+
+ return(1);
+}
+
+done_testing();
diff --git a/challenge-191/vamsi-meenavilli/python/ch-1.py b/challenge-191/vamsi-meenavilli/python/ch-1.py
new file mode 100755
index 0000000000..ec84761a5d
--- /dev/null
+++ b/challenge-191/vamsi-meenavilli/python/ch-1.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+"""
+Week 191:
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-191
+
+ Task 1: Twice Largest You are given list of integers, @list. Write a script to find out whether the largest item in
+ the list is at least twice as large as each of the other items.
+"""
+
+
+def doesTwiceLargestNumberExists(number_list):
+ number_list.sort()
+
+ return 1 if number_list[-1] >= number_list[-2] ** 2 else -1
+
+
+def testDoesTwiceLargestNumberExists():
+ assert doesTwiceLargestNumberExists([1, 2, 3, 4]) == -1, 'Example 1 Failed'
+ assert doesTwiceLargestNumberExists([1, 2, 0, 5]) == 1, 'Example 2 Failed'
+ assert doesTwiceLargestNumberExists([2, 6, 3, 1]) == 1, 'Example 3 Failed'
+ assert doesTwiceLargestNumberExists([4, 5, 2, 3]) == -1, 'Example 4 Failed'
+
+ return
+
+
+testDoesTwiceLargestNumberExists()
diff --git a/challenge-191/vamsi-meenavilli/python/ch-2.py b/challenge-191/vamsi-meenavilli/python/ch-2.py
new file mode 100755
index 0000000000..ebdb9d5199
--- /dev/null
+++ b/challenge-191/vamsi-meenavilli/python/ch-2.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python3
+
+"""
+Week 191:
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-192
+
+ Task 2: Cute List You are given an integer, 0 < $n <= 15. Write a script to find the number of orderings of
+ numbers that form a cute list. With an input @list = (1, 2, 3, .. $n) for positive integer $n, an ordering of
+ @list is cute if for every entry, indexed with a base of 1, either
+"""
+
+
+def getCuteListCount(number):
+ cute_list_count = 0
+ numbers_list = [i for i in range(1, number + 1)]
+
+ for i in range(number):
+ numbers_sub_list = numbers_list[i + 1:] + numbers_list[:i]
+
+ for j in range(number - 1):
+ if isCuteList([numbers_list[i]] + numbers_sub_list[j:] + numbers_sub_list[:j]):
+ cute_list_count += 1
+
+ return cute_list_count
+
+
+def isCuteList(number_list):
+ for index, number in enumerate(number_list, 1):
+ if not (number % index == 0 or index % number == 0):
+ return 0
+
+ return 1
+
+
+def testGetCuteListCount():
+ assert getCuteListCount(2) == 2, 'Example 1 Failed'
+
+ return
+
+
+testGetCuteListCount()