aboutsummaryrefslogtreecommitdiff
path: root/challenge-197
diff options
context:
space:
mode:
authorLuca Ferrari <fluca1978@gmail.com>2022-12-27 09:47:05 +0100
committerLuca Ferrari <fluca1978@gmail.com>2022-12-27 09:47:05 +0100
commit772fb588198fa4e4ddb2a7e6b322c0abfe4c8b80 (patch)
treefc066c227756585fc149223358ddd5f49f63ad25 /challenge-197
parentc22de68f0b4b07034ac2ed02fce5a6df04508c89 (diff)
downloadperlweeklychallenge-club-772fb588198fa4e4ddb2a7e6b322c0abfe4c8b80.tar.gz
perlweeklychallenge-club-772fb588198fa4e4ddb2a7e6b322c0abfe4c8b80.tar.bz2
perlweeklychallenge-club-772fb588198fa4e4ddb2a7e6b322c0abfe4c8b80.zip
Task 2 done
Diffstat (limited to 'challenge-197')
-rw-r--r--challenge-197/luca-ferrari/raku/ch-2.p638
1 files changed, 38 insertions, 0 deletions
diff --git a/challenge-197/luca-ferrari/raku/ch-2.p6 b/challenge-197/luca-ferrari/raku/ch-2.p6
new file mode 100644
index 0000000000..050a1d9c1a
--- /dev/null
+++ b/challenge-197/luca-ferrari/raku/ch-2.p6
@@ -0,0 +1,38 @@
+#!raku
+
+# Perl Weekly Challenge 197
+
+sub MAIN( *@list where { @list.grep( * ~~ Int ).elems == @list.elems } ) {
+ my @sorted = @list;
+ my $done = False;
+
+ # list[0] < list[1] > list[2] < list[3]….
+ while ( ! $done ) {
+ $done = True;
+ for 0 ..^ @sorted.elems - 1 -> $i {
+ if ( $i %% 2 ) {
+ if ( @sorted[ $i ] >= @sorted[ $i + 1 ] ) {
+ # need to change
+ my $temp = @sorted[ $i ];
+ @sorted[ $i ] = @sorted[ $i + 1 ];
+ @sorted[ $i + 1 ] = $temp;
+ $done = False;
+ }
+ }
+ else {
+ if ( @sorted[ $i ] <= @sorted[ $i + 1 ] ) {
+ # need to change
+ my $temp = @sorted[ $i ];
+ @sorted[ $i ] = @sorted[ $i + 1 ];
+ @sorted[ $i + 1 ] = $temp;
+ $done = False;
+
+ }
+ }
+
+ }
+ }
+
+ @list.join( ',' ).say;
+ @sorted.join(',').say;
+}