diff options
| author | Luca Ferrari <fluca1978@gmail.com> | 2022-12-27 09:47:05 +0100 |
|---|---|---|
| committer | Luca Ferrari <fluca1978@gmail.com> | 2022-12-27 09:47:05 +0100 |
| commit | 772fb588198fa4e4ddb2a7e6b322c0abfe4c8b80 (patch) | |
| tree | fc066c227756585fc149223358ddd5f49f63ad25 /challenge-197 | |
| parent | c22de68f0b4b07034ac2ed02fce5a6df04508c89 (diff) | |
| download | perlweeklychallenge-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.p6 | 38 |
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; +} |
